我希望在弹出对话框之前显示启动画面几秒钟。但是,当我加载我的应用程序时,对话框和背景屏幕同时显示。在对话框出现之前,我该怎么做才能显示splash.xml的背景图像。
Thread waitabit=new Thread(){
public void run(){
try{
sleep(2000);
}catch(Exception e){
e.printStackTrace();
}
}
};waitabit.start();
在我的对话框之前放置上面的内容只会让它变暗2秒,然后立即显示所有内容。在线程内部调用我的对话框会导致错误,因为我们无法将对话框放在线程中。
由于
答案 0 :(得分:1)
尝试将上述代码放在AsyncTask中,以便UIThread不会休眠。
new AsyncTask<Object, Void, Void>() {
@Override
protected void onPreExecute() {
// show background image
}
@Override
protected Void doInBackground(Object... params) {
new Thread() {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (Exception e) {
e.printStackTrace();
}
}
}.run();
return null;
}
@Override
protected void onPostExecute(Void result) {
// open dialog
}
}.execute();
答案 1 :(得分:0)
This link有一个非常好的解决方案,可以在启动画面完成后显示启动画面并调用处理程序(即,这样可以显示对话框)。
答案 2 :(得分:0)
显示启动画面的活动怎么样,反过来用对话框启动活动?
答案 3 :(得分:0)
在你的onResume中试试这个:
Runnable myRunnable = new Runnable(){
@Override
public void run() {
// do your dialog
}};
Handler myHandler = new Handler();
long delayMillis = 5000; // 5 seconds
myHandler.postDelayed(myRunnable, delayMillis);