0

我在我的应用程序中使用 C2DM,并且我有一个接收器,它将数据发送到应用程序中的一个类。该类创建一个通知并通知通知管理器发布它。

问题是,当应用程序通过设置手动关闭时,这不起作用,因为这也(显然)关闭了广播接收器。

我得到的是,当一个应用程序被 android 4.0 的新任务管理器(类似于 3.0 但用户也可以向左或向右滑动应用程序以将其关闭)关闭时,它的行为会有所不同:广播接收器仍在工作,因为我从 C2DM 消息中获得了意图,但由于某种原因,我的手机仍在播放通知噪音,而托盘中没有出现通知。

我无法弄清楚发生了什么,因为没有通知出现就无法播放声音,因为声音附加到通知并在发布时播放,没有其他方式。但没有出现任何通知。

任何关于为什么会发生这种情况的见解都会很棒,或者当您将应用程序从列表中滑出时,新的 4.0 任务管理器实际上对应用程序做了什么。

谢谢。

4

1 回答 1

-1

弄清楚了,广播接收器仍在响应,但只是失败了,因为它正在从属于主应用程序的类中检索东西,现在已经死了,所以现在它需要的东西存储在 sharedprefs 中,并在收到通知之前检索发送。

所以要回答这个问题,在 4.0 中没有从任务管理器中滑动应用程序不会“强制终止”该应用程序,就像设置中应用程序菜单中的强制终止按钮一样。它确实会杀死应用程序,这样下次打开它时,所有活动都会从头开始重新启动,就像您在最后一个剩余活动中并按下回,从而在最后一个活动任务上调用完成()并关闭应用程序。广播恢复器(和我假设的服务)之后仍在运行。

于 2012-05-10T03:20:06.320 回答