对话框消息前的启动画面

时间:2011-08-25 02:01:10

标签: android multithreading splash

我希望在弹出对话框之前显示启动画面几秒钟。但是,当我加载我的应用程序时,对话框和背景屏幕同时显示。在对话框出现之前,我该怎么做才能显示splash.xml的背景图像。

Thread waitabit=new Thread(){
public void run(){
try{
    sleep(2000);
}catch(Exception e){
    e.printStackTrace();

}

    }
};waitabit.start();

在我的对话框之前放置上面的内容只会让它变暗2秒,然后立即显示所有内容。在线程内部调用我的对话框会导致错误,因为我们无法将对话框放在线程中。

由于

4 个答案:

答案 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)

显示启动画面的活动怎么样,反过来用对话框启动活动?

http://www.codeproject.com/KB/android/AndroidSplash.aspx

答案 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);