2011-01-02 13 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

あなたは事のこのタイプのHandlerRunnableとのより良い運を持っているでしょう。別のスレッドから投稿していても、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