防止活动重启电话启动?

时间:2012-08-09 15:52:39

标签: android

如果用户在我的活动位于前台时重新启动手机,则在手机重新启动后,活动会自动再次弹出。我不希望这种情况发生,因为我传递给活动的额外数据都没有保存,因此活动没有正确的显示。

显然,即使在具有android.intent.action.BOOT_COMPLETED的意图过滤器的BroadcastReceiver开始之前,活动也已开始。

如何防止手机启动时自动启动活动?

修改:我在我的意图过滤器中使用android.intent.category.HOME类别来查看我的活动,这显然是重启时启动的原因。

1 个答案:

答案 0 :(得分:1)

当设备关闭时,ACTION_SHUTDOWN广播应该会消失。我说“应该出去”,因为它假定有序关闭。如果用户最后按住POWER按钮约10秒钟,或弹出电池,我会认为ACTION_SHUTDOWN没有播出。

要控制某个组件(例如活动)是否可用,您可以使用PackageManagersetComponentEnabledSetting()。禁用的组件无法运行且通常不可见(例如,已停用的应用小部件的<receiver>将不会显示在应用小部件选择器中。)

理论上,你可以将这两者结合起来。然而,即使在最好的时候,我也会认为ACTION_SHUTDOWN行为是相当有时间限制的(因此请快速进行),并且您需要处理“无序”关机场景。