当我第一次打开活动时,一切都很好。当我回去,并重新打开活动我的应用程序崩溃。
这是我的错误日志:
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 :(得分:0)
你得到一个NullPointerException
- 所以我会假设当你退出应用程序时,它正在摧毁你的线程。这可能发生在某些情况下,例如应用程序需要释放内存时。当您再次打开应用时,系统会调用活动的onResume
方法,而不是onCreate
,因此它会尝试引用不存在的内容。
所以你可以做的一件事就是使用Shared Preferences来保存任何变量,然后覆盖onResume
方法并再次创建线程。