【问题标题】:Scheduling Actions or Alarms in Android在 Android 中安排操作或警报
【发布时间】:2018-08-23 23:27:26
【问题描述】:

所以,我首先要说我已经对此进行了大量研究,但我仍然陷入困境。

因此,目标是:执行数据库操作(将提醒消息插入本地 sqlitedb)并在某些用户设置给定的预设时间发送通知。

问题出在:关闭应用时它不起作用。

我已尝试将AlarmManager 与广播挂起意图和服务挂起意图一起使用。在问题场景中似乎都不起作用。在进一步研究之后,我发现在较新版本的 Android 上,他们正在削减 AlarmManager 的一些功能,转而支持 JobScheduler,这是一个新的 API,1) 对我来说似乎有点过头了做和 2) 不适用于旧设备。在应用程序关闭时发送警报似乎是这些“缩减”功能之一。我该怎么办?我用什么?其他人通常会做什么?我误解了什么吗?请帮忙;我在 Google 上找不到任何东西!

【问题讨论】:

    标签: android alarmmanager alarm android-alarms android-jobscheduler


    【解决方案1】:

    在棒棒糖之前有几种运行“作业”的方法。

    您可以使用JobSchedulerCompat 库,但是这个库与默认的 Lollipop API 相比有很大的不同:

    在 Lollipop 上,一次性为所有应用批处理和安排作业。但是,该库无法访问其他应用数据,因此无法使用该库合并来自两个不同应用的作业。

    另一种选择是将JobScheduler 用于棒棒糖和更大的设备,然后通过检查将AlarmManager 用于棒棒糖之前的设备 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){}

    最后,您可以使用Sync-Adapter API。同步适配器封装了在设备和服务器之间传输数据的任务的代码。根据您在应用程序中提供的调度和触发器,同步适配器框架运行同步适配器组件中的代码。要将同步适配器组件添加到您的应用程序,您需要添加以下部分:

    • 同步适配器类。
    • 绑定服务。
    • 同步适配器 XML 元数据文件。
    • 应用清单中的声明。

    【讨论】:

    • 我想对于我的情况,我可能会使用版本代码检查。我已经看到了这一点,但它感觉像是一种解决方法,而不是“正确的方法”。我确实看过那个图书馆,但看起来它没有太多活动,所以我有点回避了。我认为 Sync-Adapter 实际上与我需要的相反,因为安排这些提醒的重点是我们不必从服务器发送它们。很有帮助的回复;谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多