我有一个 android 应用程序,我必须在 20-30 秒的非常短的时间间隔内执行一些任务。这是一项要求,它在某种程度上是一个“监控”应用程序,不会用于商业目的,因此无需担心电池和数据使用。
我正在使用 java.util.Timer
安排任务,如下所示:
mTimer.scheduleAtFixedRate(mUpdateDataTask,0,20000);
我知道如何停止正在执行的任务:
mTimer.cancel();
当我的 Service
停止时,我正在执行此操作。
问题:
如果我的应用程序在某个时候崩溃,Service
的 onDestroy()
方法不会被调用并且 mTimer
永远不会被取消,那些任务继续被处决。当我的应用程序崩溃或从 Settings->Application 强制停止时,我如何确定它们被取消?
最佳答案
你需要调查UncaughtExceptionHandler
作为捕捉崩溃的一种方式;您可以取消此处理程序中的计时器。
关于android - 在应用程序崩溃时取消 TimerTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9791527/