2011-01-02 2 views
1

Я хотел бы создать всплывающее окно после всплывающего окна. Но у A есть сбой. Я думаю, потому что всплывающее окно создается в потоке (но заканчивается). Так врезаться ..Всплывающее окно в потоке

Я не нахожу хороший код :(

Код:

Thread splashTread = new Thread() { 
      @Override 
      public void run() { 
       boolean error = true; 
       try { 
        int waited = 0; 

        Parser parser= Parser(); 
        error = parser.init(); 
        while (waited < _splashTime) { 
         sleep(100); 
         waited += 100; 
        } 

       } finally { 

        if(!error){ 
         startActivity(new Intent(getApplicationContext(), 
           Main.class)); 
         finish(); 
        }else{ 
         createPopup(context); 
        } 
       } 
      } 
     }; 

ответ

0

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

Runnable splashRunnable = new Runnable(){ 
    public void run(){ 
     if(!error){ 
     StartActivity(new Intent(getApplicationContext(), Main.class)); 
     finish(); 
     }else createPopup(context); 

    } 
}; 

//in your thread 
mHandler.postDelayed(splashRunnable, _splashTime); 
+0

Вместо создания собственного обработчика вы должны просто использовать обработчик 'AsyncTask' – Falmarri

+0

, который лучше подходит для событий со временем – schwiz

Смежные вопросы