android - Oreo 中的基于时间的通知

标签 android android-alarms android-8.0-oreo android-jobscheduler

我正在开发一个任务安排应用程序,它可以在特定时间提醒我某项任务。我曾经使用 getSystemService(AlarmManager.class).set(RTC_WAKEUP, millis, pendingIntent); 来实现它。然后 IntentService 稍后启动并显示通知。

但在 Android Oreo 中,我的 IntentService 根本没有被调用。我注意到关于 Background Execution Limits 的大量讨论以及如何从 AlarmManager 迁移到 JobScheduler,但没有人提到 JobScheduler 如何启动基于 RTC 的作业。

我的IntentService除了显示通知外,无非是将任务设置为“已通知”或“已完成”,我认为这与同步大量数据这样的繁重任务无法比拟引入 JobScheduler 的网络。

在 Android Oreo 中实现基于时间的通知的最佳实践是什么?

最佳答案

我正在采用@balu-sangem 的解决方案:

  • PendingIntent.getService() 替换为 PendingIntent.getBroadcast()
  • IntentService 替换为 BroadcastReceiver

关于android - Oreo 中的基于时间的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48356131/

相关文章:

android - TextView 顶部填充问题?

java - retrofit 2 : Parsing data structure in list of list without Java 8

android - 使用 AlarmManager 时后台 Activity 被阻止。 (Android Q 隐私更改)

android - 更新到 Android 8.0 或 8.1 后,仅适用于 Galaxy 设备的 Cordova 应用程序触摸事件出现 ANR

java - Android P,下载没有开始使用下载管理器?

android - 无法在 channel "null"上发布通知目标 Api 为 26

Android - 拍摄照片并通过 Intent 使用自定义名称将其保存到自定义目的地

android - dexguard 混淆中的非 ASCII 字符

android - 从 Android 源构建闹钟应用程序时出错

java - 无法在 Android 中使用 AlarmManager 停止服务