您的位置:首页 > 移动开发

Thread无法关闭问题

2015-09-18 14:54 169 查看
当我们在Activity或者Service需要执行一些比较耗时的任务时,就会想到使用子线程Thread。这时候就是特别注意了,我们finish Activity或Service的时候就要先把线程停掉,否则系统是无法调用Activity或Service的onDestroy方法的。

很多人可能会想到使用stop方法来停止,我们看java文档就知道这个方法已经被遗弃了,即使你调用了也是没有用的,也达不到停止线程的目的。解决办法之一就是在Thread的run方法设置标志位,

@Override
public void run() {
super.run();
while (!stop) {
       //do something
}

}

在Activity里的onPause或Service里面的onUnbind(或onDestroy,具体情况具体分析),设置标志为true,如:

protected void onPause() {

  stop= true;

  super.onPause();

  }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  app 线程 谷歌 java