如何在子线程中确保计时器的关闭

加盾男爵 2020-03-26 09:38:25
1现在有个线程继承自thread类,然后里面有个定时器,该定时器类似下面

cdt = new CountDownTimer(maxTime, 1000) {
@Override
public void onTick(long millisUntilFinished) {
++oTime;
Log.d("MK","线程时间"+oTime);
}
@Override
public void onFinish() {
Log.d("MK","线程结束");
}
};
cdt.start();

但这里有个问题,该线程会被其他程序调用,其他程序会调用interrupt()甚至stop()方法来结束此线程,那有没有办法确保用户调用该线程时,能关闭该计时器?
...全文
244 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
王能 2020-03-26
  • 打赏
  • 举报
回复
如果调用stop的话线程会被强制终结,timer是基于线程的,自然会立即停止。 调用interrupt需要自己写关闭逻辑。
加盾男爵 2020-03-26
  • 打赏
  • 举报
回复
引用 1 楼 bdmh的回复:
你可以public一个方法,在中断线程之前,先停止timer
线程有个停止函数,我在里面调用了计时器的cancel()函数,但我不能确保线程的调用会一定在线程终止前会调用这个函数,线程不是我调用的,使用人员甚至很可能直接使用stop()来停止线程
bdmh 2020-03-26
  • 打赏
  • 举报
回复
你可以public一个方法,在中断线程之前,先停止timer

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧