不总是删除android前台意图服务的通知

时间:2015-10-23 08:48:56

标签: android android-service android-notifications android-intentservice

在我的应用uPod中,我有几个意图服务执行一次性任务,如下载剧集或同步剧集状态。我将这些任务作为前台服务运行,并在Android的状态栏中显示通知。有时,当服务运行时屏幕关闭时,虽然服务已完成(在任务管理器中进行了检查),但不会删除通知。

我不确定在这些情况下,由于缺乏可用资源,服务是否优雅或已被Android杀死(将为此添加日志记录)。然而,根据我的代码,我希望在可能的情况下删除通知。但在这些情况下,摆脱通知的唯一可能是通过启动任务管理器并强制终止应用程序。

有没有人知道,如何确保在每种可能的情况下删除通知?

这是我的伪代码(原始代码在Scala中):

class SyncService extends IntentService("SyncService") ... {
  ...
  void onHandleIntent(Intent intent) {
    final WakeLock wakeLock = powerManager.acquire(AndroidPowerManager.PARTIAL_WAKE_LOCK);
    wakeLock.acquire();
    try {
      startForeground(notificationId, notification);
      try {
        sync();
      } finally {
        stopForeground(true);
      }
    } finally {
      wakeLock.release()
    }
  }
  ...
}

0 个答案:

没有答案