2013-06-03 212 views
0

我試圖讓我的第一個活動睡眠5秒,然後開始一個新的活動,但是當我測試應用程序時。該應用程序崩潰。 這是我的logcatAndroid應用程序因線程崩潰

06-03 12:40:28.915: E/AndroidRuntime(1480):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1618) 
06-03 12:40:28.915: E/AndroidRuntime(1480):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417) 
06-03 12:40:32.655: I/Choreographer(1480): Skipped 56 frames! The application may be doing too much work on its main thread. 
06-03 12:40:33.675: I/Process(1480): Sending signal. PID: 1480 SIG: 9 

以下是我的代碼。

  Thread timer = new Thread(){ 
    public void run(){ 
     try{ 
      sleep(5000); 
     Intent openStartingPoint = new Intent(MainActivity.this, Menu.class); 
      startActivity(openStartingPoint); 
      finish(); 
     } 
     catch(InterruptedException e){ 

      e.printStackTrace();   

     } 


    } 


    }; 

timer.start(); 

} 
+1

http://developer.android.com/training/articles/perf-anr.html。在線程中使用睡眠是一個糟糕的設計。檢查鏈接的敵人詳情。使用一個處理程序或runOnUiThread – Raghunandan

回答

0

您可以使用此代碼,可以幫助ü..

Thread timer = new Thread(){ 
public void run(){ 
    try{ 
     sleep(5000); 
     MainActivity.this.runOnUiThread(new Runnable() { 
     @Override 
     public void run() {         
      Intent openStartingPoint = new Intent(MainActivity.this, Menu.class); 
      MainActivity.this.startActivity(openStartingPoint); 
      MainActivity.this.finish(); 
      }); 

    } 

    } 
    catch(InterruptedException e){ 

     e.printStackTrace();   

    } 


} 


    }; 

timer.start(); 

}