如何在销毁活动后检查活动生成的线程是否处于活动状态

时间:2012-10-19 07:25:28

标签: android

我的应用程序的第一个Activity产生一个Thread来执行一些IO操作。如果在那一刻用户点击Back按钮,活动就会被销毁(我可以看到正在调用onDestroy方法),但Thread仍在运行(我可以从日志消息中看到它)。

如果用户然后回到应用程序,则再次创建Activity,此时我想检查Thread是否仍在运行,在这种情况下,不会启动新的。

实现这一目标的最佳方法是什么?

否则:这是一个糟糕的设计吗?在调用onDestroy时,确保活动启动的所有线程都被杀死是否更好?

2 个答案:

答案 0 :(得分:1)

我会在离开活动时杀死该线程(除非它需要运行,然后我会使用服务来执行此操作)

检查您可以使用的主题

thread.getState(); 

示例:

if (thread.getState() == Thread.State.NEW) 
thread.start();
else
{
    //Do something else here
}

答案 1 :(得分:0)

你可以在onDestroy上检查你的线程是否存在 如果它是aLive可以在离开活动时中断线程

public void onDestroy() {
try{
            if(myThread!=null & myThread.isAlive()){
                myThread.interrupt();

        }catch (Exception e) {
            e.printStackTrace();
        }
}