android studio 使用报警管理器调用函数

android studio call a functoin with alarm manager

我正在用 kotlin 制作一个应用程序,每天使用警报管理器查询一次 API。
现在我想到了一个问题:执行报警管理器时没有网络怎么办?

我最好的办法是查询 API,如果没有响应,我会在半小时后设置另一个警报管理器。
问题是警报管理器需要一个未决的意图,我不知道如何用一个未决的意图调用 activity 中的另一个函数。
我可以用另一个意图调用同一个 activity,但我担心如果连续多次没有互联网连接,就会发生一些不好的事情,因为会有很多意图。

所以我的问题是坏事是否真的会因为所有意图而发生
或者也许你有比我更好的解决方案...

为此,您应该使用 WorkManager。它旨在支持这些类型的任务。您可以安排定期执行并告诉 WorkManager 您的任务需要 Internet 连接。 WorkManager 确保任务仅在有连接时运行。使用 WorkManager 安排的任务会在设备重启后保留,因此您不必担心在设备重启后重新安排它们。

https://developer.android.com/topic/libraries/architecture/workmanager