在完成 onCreate() 之前等待用户交互
Wait for user interaction before finishing onCreate()
在我的应用程序中,我在 onCreate 中设置了所有内容,然后启动一个异步任务,该任务设置加载我的所有资源等...在异步任务启动后,我将启动画面添加到我的布局中。加载所有内容后,闪屏消失,我的 Open GL 渲染器显示在下方。
我想做的是添加一个对话框屏幕(基本上,另一个显示位图的 View class)。而且,我 不希望 任何飞溅的东西发生,直到用户在我的对话框屏幕中按下点击屏幕。
大概是这样的(注意,这只是我真实的onCreate的摘录,但应该足以说明问题)
public void onCreate(Bundle savedInstanceState){
SplashScreen splash = new SplashScreen (getApplication(), width, height);
ConsentDialog consentDialog = new ConsentDialog(getApplication(), width, height);
//Add the consent dialog
layout.addView(consentDialog);
setContentView(layout);
super.onCreate(savedInstanceState);
//Splashscreen
backgroundResources = new MyAsync(newBundle);
backgroundResources.execute();
layout.addView(splash);
}
然而,当我 运行 上面的内容时,它显示启动画面,加载所有内容,然后关闭启动画面,留下对话框。
如何在 setContentView 之后暂停 onCreate 方法(或产生暂停效果的东西)直到用户点击屏幕? (注意,我在 consentDialog 对象中使用 onTouch(View v, MotionEvent event) 方法等待触摸事件。
基本上,异步不应该开始 直到 用户点击屏幕。如果做不到,我该怎么做才能达到我想要的效果?
How can I pause (or something that gives the effect of being paused), the onCreate method just after setContentView until the user has pressed a key?
你不知道。
Note, I'm waiting for a keypress using the onTouch(View v, MotionEvent event) method in my consentDialog object
将您应该等待 "until the user taps the screen" 逻辑的工作放在 onTouch()
中,或者放在从 onTouch()
.
调用的方法中
在创建时,应用实际上并未对用户激活(可见或交互)。
我认为您所能做的就是在显示启动画面之前等待用户的交互(点击)。
Activity 是事件驱动的。您应该将 onClickListener 或 onTouchListener 设置(添加)到您的屏幕视图。在监听器的实现中,您可能会编写显示启动的代码。仅当用户点击时才会调用此代码。
在我的应用程序中,我在 onCreate 中设置了所有内容,然后启动一个异步任务,该任务设置加载我的所有资源等...在异步任务启动后,我将启动画面添加到我的布局中。加载所有内容后,闪屏消失,我的 Open GL 渲染器显示在下方。
我想做的是添加一个对话框屏幕(基本上,另一个显示位图的 View class)。而且,我 不希望 任何飞溅的东西发生,直到用户在我的对话框屏幕中按下点击屏幕。
大概是这样的(注意,这只是我真实的onCreate的摘录,但应该足以说明问题)
public void onCreate(Bundle savedInstanceState){
SplashScreen splash = new SplashScreen (getApplication(), width, height);
ConsentDialog consentDialog = new ConsentDialog(getApplication(), width, height);
//Add the consent dialog
layout.addView(consentDialog);
setContentView(layout);
super.onCreate(savedInstanceState);
//Splashscreen
backgroundResources = new MyAsync(newBundle);
backgroundResources.execute();
layout.addView(splash);
}
然而,当我 运行 上面的内容时,它显示启动画面,加载所有内容,然后关闭启动画面,留下对话框。
如何在 setContentView 之后暂停 onCreate 方法(或产生暂停效果的东西)直到用户点击屏幕? (注意,我在 consentDialog 对象中使用 onTouch(View v, MotionEvent event) 方法等待触摸事件。
基本上,异步不应该开始 直到 用户点击屏幕。如果做不到,我该怎么做才能达到我想要的效果?
How can I pause (or something that gives the effect of being paused), the onCreate method just after setContentView until the user has pressed a key?
你不知道。
Note, I'm waiting for a keypress using the onTouch(View v, MotionEvent event) method in my consentDialog object
将您应该等待 "until the user taps the screen" 逻辑的工作放在 onTouch()
中,或者放在从 onTouch()
.
在创建时,应用实际上并未对用户激活(可见或交互)。
我认为您所能做的就是在显示启动画面之前等待用户的交互(点击)。
Activity 是事件驱动的。您应该将 onClickListener 或 onTouchListener 设置(添加)到您的屏幕视图。在监听器的实现中,您可能会编写显示启动的代码。仅当用户点击时才会调用此代码。