我正在制作一个闹钟应用程序,并使用AlarmManager来设置闹钟。我在AlarmManager上运行SetAlarm后使用Room保存了每个闹钟,这样我就可以在以后手机关机和关机时恢复它们。
我运行一个BroadcastReceiver后,设备启动使用指南从Android开发人员网站:https://developer.android.com/training/scheduling/alarms#boot
我的想法是在onReceive方法上从Room获取警报,但是Room使用了一个suspend函数来获取警报,但是我无法在onReceive上运行它,因为BroadcastReceiver没有生命周期
我怎样才能达到类似的结果呢?
2条答案
按热度按时间7gs2gvoe1#
BroadcastReceiver文档中的本节提供了如何执行此操作的示例。
你可以用一个扩展函数来稍微清理一下:
然后在你的接收器中,你可以像下面这样使用它。
goAsync
块中的代码是一个协程。记住你不应该在这个协程中使用Dispatchers.Main
。pgvzfuti2#
你可以这样做: