Thread无法关闭问题

当我们在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();

  }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值