2014-07-08 38 views
0

當我第一次打開該活動時,everthing很好。當我回去時,重新打開活動,我的應用程序崩潰。Android第二個線程錯誤

這是我的錯誤日誌:

07-09 00:11:47.530: E/AndroidRuntime(22799): FATAL EXCEPTION: TIMETHREAD 
07-09 00:11:47.530: E/AndroidRuntime(22799): Process: testprogram, PID: 22799 
07-09 00:11:47.530: E/AndroidRuntime(22799): java.lang.NullPointerException 
07-09 00:11:47.530: E/AndroidRuntime(22799): at testprogram.LocationActivity$1.run(LocationActivity.java:61) 
07-09 00:11:47.530: E/AndroidRuntime(22799): at java.lang.Thread.run(Thread.java:841) 

這裏是源:

protected void onCreate(Bundle savedInstanceState) 
{ 
timethread = new Thread(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     try 
     { 
      while(0 < 1) 
      { 
       text_currentime.post(new Runnable() 
       { 
        public void run() 
        { 
         text_currentime.setText(getCurrentTime()); 
        } 
       }); 
       Thread.sleep(UPDATE_TIME); 
      } 
     } 
     catch (InterruptedException e) 
     { 
      e.printStackTrace(); 
     } 
    } 
}); 
timethread.setName("TIMETHREAD"); 
timethread.start(); 
+0

您需要在此處添加更多上下文以供任何人協助。一個堆棧跟蹤(請參閱Android Logcat),以及有關您如何使用上述代碼的一些信息,特別是它與您的Activity關聯的方式。 – ataulm

回答

0

你得到一個NullPointerException - 所以我會假設,當你退出應用程序,它正在摧毀你的線程。這可能發生在某些情況下,例如當應用程序需要釋放內存時。當你再次打開你的應用時,活動的onResume方法被調用而不是onCreate,所以它試圖引用一些不存在的東西。

所以你可以做的一件事是使用Shared Preferences保存任何變量,然後覆蓋onResume方法並再次創建線程。

相關問題