Заставка перед диалоговым сообщением - PullRequest
0 голосов
/ 25 августа 2011

Я хочу, чтобы заставка отображалась на несколько секунд, прежде чем появится диалоговое окно. Однако, когда я загружаю свое приложение, диалоговое окно и фоновый экран появляются одновременно. Что я могу сделать, чтобы показать фоновое изображение моего splash.xml до появления диалогового окна.

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

}

    }
};waitabit.start();

Помещение вышеупомянутого перед моим диалогом только делает его темным в течение 2 секунд, прежде чем показывать все сразу. Вызов моего диалога внутри потока вызывает и вызывает ошибку, потому что мы не можем поместить диалоги в поток.

Спасибо

Ответы [ 4 ]

1 голос
/ 25 августа 2011

Попробуйте поместить приведенный выше код в 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();
0 голосов
/ 25 августа 2011

Попробуйте это в вашем 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);
0 голосов
/ 25 августа 2011

Как насчет действия, чтобы показать заставку, которая, в свою очередь, запускает действие с диалоговым окном?

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

0 голосов
/ 25 августа 2011

Эта ссылка имеет довольно хорошее решение о том, как отобразить заставку и вызвать обработчик, как только завершится заставка (т.е. это позволит вам отобразить диалоговое окно).

...