我想在应用程序中每秒运行一次警报服务,在5.1版本以下可以正常工作。但它不会在5.1设备中触发。我正在使用常用软件唤醒 Intent 服务。logcat消息说“可疑的时间间隔短为1000毫秒;扩展到60秒”。如何在5.1中每秒进行轮询?有人可以建议我如何实现这一目标吗?

说明多一点:

我的用例是,我需要每隔30分钟执行一次操作。 AFAIK为此,使用警报管理器是有效的方法,但是这里

1)我需要向用户显示倒数计时器。 (计时器任务,倒数计时器,ScheduledExecutorService为此非常有用)
2)我需要每30分钟(通过通知)通知用户,即使该应用处于后台运行。

但是这里我的问题是当应用程序处于后台时,当您从最近的状态中刷出应用程序时(即应用程序进程被杀死),所有服务或计时器,处理程序,执行器服务都将不起作用)。在这种情况下,如何在30分钟结束后通知用户。如果我以错误的方式思考,请指导我。

谢谢,
柴坦亚

最佳答案

这是Android Lollipop中的正常行为。



告诉您系统不再喜欢这些短时间间隔。

问题#161244记录了以下内容:



因此,请勿为此使用AlarmService。首选线程或ExecutorsTimerTask或其他:

// Using Handler
new Handler().postDelayed(runnable, TimeUnit.SECONDS.toMillis(1));

// Using Executors
Executors.newSingleThreadScheduledExecutor().schedule(runnable, 1, TimeUnit.SECONDS);

09-04 22:57