我在Activity中创建了一个Thread。起初,我认为在Activity上调用onDestroy()
时,线程也会被杀死。但是我错了。线程仍在继续运行。
所以我决定取消onDestroy()
方法中的线程。一切正常。
但是有一个问题:onDestroy()
无法保证被调用。例如:操作系统突然杀死活动。
那么在这种情况下最好的做法是什么?感谢。
答案 0 :(得分:1)
您应该在 onPause()中执行与清理相关的所有操作。你是正确的, onDestroy()并不总是被调用,但是当活动移动到后台或被杀死时,总会调用 onPause()。但要注意使这个方法中的代码非常轻量级,因为在此方法返回之前,活动无法进入后台。
答案 1 :(得分:-2)
我建议在Thread
Application
方法中放置onTerminate
查杀
public class MyApplication extends Application
{
MyThread myThread;
@Override
public void onCreate()
{
super.onCreate();
myThread=new MyThread();
myThread.start();
}
@Override
public void onTerminate ()
{
super.onTerminate();
myThread.interrupt();
}
}
请务必在AndroidManifest.xml中声明MyApplication