android - 在应用程序崩溃时取消 TimerTask

标签 android android-service

我有一个 android 应用程序,我必须在 20-30 秒的非常短的时间间隔内执行一些任务。这是一项要求,它在某种程度上是一个“监控”应用程序,不会用于商业目的,因此无需担心电池和数据使用。

我正在使用 java.util.Timer 安排任务,如下所示:

mTimer.scheduleAtFixedRate(mUpdateDataTask,0,20000);

我知道如何停止正在执行的任务:

mTimer.cancel();

当我的 Service 停止时,我正在执行此操作。

问题: 如果我的应用程序在某个时候崩溃,ServiceonDestroy() 方法不会被调用并且 mTimer 永远不会被取消,那些任务继续被处决。当我的应用程序崩溃或从 Settings->Application 强制停止时,我如何确定它们被取消?

最佳答案

你需要调查UncaughtExceptionHandler作为捕捉崩溃的一种方式;您可以取消此处理程序中的计时器。

关于android - 在应用程序崩溃时取消 TimerTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9791527/

相关文章:

android - 以沉浸式模式显示 BottomSheetDialogFragment

android - 在 flutter 中,如何将 tflite 添加为 pubspec.yaml 文件中的依赖项?

java - 服务或线程或异步任务

java - 当我的应用程序在 Android 10/Q 上关闭时,如何触发启动 Activity Intent ?

android - 将自身保持在顶部并在关闭时重新启动的应用程序

Android 多语言和少数语言支持没有区域设置的语言

仅适用于某些情况的 Android 权限

android - react 相机 : undefined is not an object(evaluatiing 'CameraManager. Aspect.fill)

android - 从 RAM 中清除应用程序时广播接收器不工作

android - 如何将自定义 InputMethodService 添加到 Activity?