我想在我的服务中检查Runnable是否还存活着。有没有一种方法可以做到这一点?
private Runnable sendData = new Runnable() {
public void run() {
try {
superToast.show();
screenOn();
vibrate();
mHandler.postDelayed(sendData, time);
} catch (Exception e) {
e.printStackTrace();
}
}
};
finally{ }
中设置isRunning = false
。 - HarryQtry{ }
的结尾有一个mHandler.postDelayed();
,这意味着该方法会定期运行。因此,如果我们在finally{ }
中放置isRunning = false
,那么当isRunning
为false
时,该方法第一次运行后就会停止! - YektaDevisRunning
变量的定义。我的理解是当线程在try块中时,可运行状态为正在运行,一旦退出,则isRunning=false
。请考虑这种情况,如果mHandler.postDelayed(sendData, time);
中的延迟时间非常长。在当前try块中的所有语句完成之前,有一个时间段,延迟的可运行状态尚未启动。在这种情况下,我的理解是isRunnable
应该为false
。 - HarryQ