使用AlarmManager启动活动,不使用Broadcastreceiver

时间:2011-07-10 12:38:19

标签: android alarmmanager

我希望有人能为我找到答案:

我想知道是否有可能(并且常见)使用AlarmManager直接启动一个Activity。文档没有明确解释这一点。它仅描述了Broadcastreceivers的用法。

如果可以直接启动我的Activity,我将在哪里收到Intent(onNewIntent)?

非常感谢 让 - 皮埃尔

1 个答案:

答案 0 :(得分:3)

  

我想知道是否可以(并且常见)使用AlarmManager直接启动活动。

  

文档没有明确解释这一点。它仅描述了Broadcastreceivers的用法。

使用BroadcastReceiver是最常见的情况。如果您希望设备在闹钟响起时可靠地唤醒,则需要_WAKEUP个警报。

AlarmManager开始活动应该用于“闹钟”类型的应用程序,而不是其他。当您的活动到达前台时,您不知道用户可能对手机做了什么,如果他们觉得您的入侵是不合理的,他们可能会对您生气。

  

如果可以直接启动我的Activity,我将在哪里收到Intent(onNewIntent)?

默认情况下,将创建活动的新实例。如果您使用FLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOP,则会显示活动的现有实例,您将在Intent中获得onNewIntent()

This sample project演示了以这种方式使用AlarmManager。当警报响起时,This sample project会演示用户可配置的Activity - 或 - Notification。这两个教程都相对较深,因此应用程序有点复杂。