2016-11-21 31 views
2

我是使用AlarmManager向用户发送通知的Android应用程序的作者。我的应用必须在确切的时间发送通知。应该使用AlarmManager的可靠应用程序的方法是什么?

谷歌推出打盹模式时出现了第一个障碍。幸运的是,将方法更改为setExactAndAllowWhileIdle()是一个解决方案。一段时间没事了。但是,自2个月以来,DAU的数量正在大幅下降。许多用户向我发送电子邮件,指出通知不适用于他们的手机。

经过一番调查后,我知道三星有智能管理器,华为的保护应用程序以及来自不同生产商的许多其他系统会阻止AlarmManager类的正常行为。

所以这里是我的问题:你如何设法解决这个问题,并让你的用户在任何设备上享受你的工作应用程序?

回答

0

随着Lollipop的发布,Android推出了一个名为JobScheduler的API来以可靠的方式安排任务。 您可以使用JobScheduler API以可靠的方式将您的Notifcation安排给您的用户。

查看以下链接了解更多关于JobScheduler API的信息,并将其用于您的应用。

文档:Job Scheduler Android Doc

JobScheduler实例:JobScheduler Google Sample Code

+0

[打盹限制...该系统不允许的jobscheduler运行](https://developer.android.com/training/monitoring -device-state/doze-standby.html) –

+0

根据@ JaredRummler的链接,JobScheduler将无法在打盹模式下工作。 但正如我在我的第一个线程中写的 - 我没有任何与AlarmManager纯Doze模式的问题。使用'setExactAndAllowWhileIdle()'是它的工作。我的问题是,供应商介绍他们自己的电池优化机制,这阻止了依靠通过AlarmManager进行确切通知的应用程序的正确工作。 从开发人员的角度来看,已知的解决方案是什么? – Perry

+0

@Perry我不确定一个可靠的解决方案。但我认为你应该对至少受欢迎的供应商进行测试 –

相关问题