我希望有人能为我找到答案:
我想知道是否有可能(并且常见)使用AlarmManager直接启动一个Activity。文档没有明确解释这一点。它仅描述了Broadcastreceivers的用法。
如果可以直接启动我的Activity,我将在哪里收到Intent(onNewIntent)?
非常感谢 让 - 皮埃尔
答案 0 :(得分:3)
我想知道是否可以(并且常见)使用AlarmManager直接启动活动。
是
文档没有明确解释这一点。它仅描述了Broadcastreceivers的用法。
使用BroadcastReceiver
是最常见的情况。如果您希望设备在闹钟响起时可靠地唤醒,则需要_WAKEUP
个警报。
从AlarmManager
开始活动应该用于“闹钟”类型的应用程序,而不是其他。当您的活动到达前台时,您不知道用户可能对手机做了什么,如果他们觉得您的入侵是不合理的,他们可能会对您生气。
如果可以直接启动我的Activity,我将在哪里收到Intent(onNewIntent)?
默认情况下,将创建活动的新实例。如果您使用FLAG_ACTIVITY_CLEAR_TOP
和FLAG_ACTIVITY_SINGLE_TOP
,则会显示活动的现有实例,您将在Intent
中获得onNewIntent()
。
This sample project演示了以这种方式使用AlarmManager
。当警报响起时,This sample project会演示用户可配置的Activity
- 或 - Notification
。这两个教程都相对较深,因此应用程序有点复杂。