什么时候我应该取消/杀死一个线程?

时间:2011-06-03 10:07:18

标签: android

我在Activity中创建了一个Thread。起初,我认为在Activity上调用onDestroy()时,线程也会被杀死。但是我错了。线程仍在继续运行。

所以我决定取消onDestroy()方法中的线程。一切正常。

但是有一个问题:onDestroy()无法保证被调用。例如:操作系统突然杀死活动。

那么在这种情况下最好的做法是什么?感谢。

2 个答案:

答案 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