0

在尝试获取有关用户的信息以进行研究时,我目前正在努力使我的服务保持活力。我们正在使用前台服务,它以 5 秒的间隔运行一个计时器,检查用户的资源。由于该资源仅在屏幕打开时才相关,因此我们可以在屏幕关闭时停止计时器。为此,我们使用广播服务。总而言之,这很好用。如果用户关闭应用程序然后将设备置于待机状态,则会出现问题 -> 屏幕熄灭。如果屏幕再次出现,我们希望停止计时器并重新启动该服务中的计时器。现在理论上可行。我用一个计数器变量对其进行了测试,每次在计时器内调用运行时它都会递增。之后,我更新我的通知并显示该变量。但是,如果我关闭应用程序并且屏幕熄灭,此变量不再在通知中更新,因此我的资源检查未运行。但我发现,一旦我重新启动应用程序,变量确实每 5 秒增加一次,然后再次在通知中更新。此外,如果设备处于通电/充电状态,它就可以工作。所以我想这是一个电源管理的事情。

摘要: ForegroundService/BroadcastReceiver 的行为不像我想要的那样,如果应用程序关闭并且屏幕熄灭,即使它的一部分按预期工作。如果设备正在充电,则完全可以使用。

您对如何避免这种行为并允许服务正确地重新运行计时器以使内部的方法再次起作用有任何想法吗?

此致,

尤科

4

0 回答 0