2014-07-08 2 views
0

처음으로 활동을 열면 모든 것이 정상입니다. 돌아가서 활동을 다시 열면 내 앱이 다운됩니다. 여기 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 참조)과 위 코드를 사용하는 방법에 대한 정보, 구체적으로 어떻게 활동에 연결되는지에 대한 정보. – ataulm

답변

0

당신이 얻고있는 NullPointerException - 그래서 당신은 응용 프로그램을 종료 할 때, 그것은 파괴된다고 가정 할 너의 실. 이는 앱이 메모리를 확보해야하는 경우와 같은 특정 상황에서 발생할 수 있습니다. 앱을 다시 열면 onCreate 대신 Activity의 onResume 메서드가 호출되므로 존재하지 않는 것을 참조하려고합니다.

이렇게하면 변수를 저장하는 데 Shared Preferences을 사용하고 onResume 메서드를 재정의하고 다시 스레드를 생성 할 수 있습니다.

관련 문제