1

我正在重新启动我的 HomeActivity 并在 Intent 中设置一个额外的“重新启动状态”。在 Activity 的 onCreate() 方法中,我检查这个值,如果存在,显示一些警报。

此活动的启动模式是android:launchmode="singleTask"

问题出现在用户看到此警报并关闭它并通过按返回按钮再次关闭活动之后。现在,如果他通过长按“主页”按钮从最近的应用程序列表中启动它,则使用其中具有额外“重新启动状态”的相同意图,并再次发出警报。

只要用户来自最近的项目,这种情况就会持续(好吧,可能是最近启动的应用程序使用了相同的意图,其中设置了额外的“重新启动状态”)。

因此,我尝试通过在活动完成之前使用 getIntent().removeExtra("relaunchstatus") 处理 BACK_KEY 按下来删除这个额外内容,但这个额外内容仍然存在于最近项目的新启动中。

但是,如果我从启动器菜单图标启动应用程序,情况并非如此。

更新:所以我猜 Activity 的 getIntent() 会给你一个启动它的 Intent 的副本,所以它不像是对相同对象的引用,更改将是永久的。如果是这种情况,那么我们将需要从当前设备 GUI(如 HTC Sense 等)执行此操作,其最近的项目绑定到意图,这可能是不可能的?

4

2 回答 2

2

如果启动模式为singleTask且 Activity 已存在而不是onCreate()onNewIntent(..)则将调用 。

所以你需要覆盖onNewIntent(..)并检查Intent那里。

于 2011-09-17T08:54:04.617 回答
0

这无法更改,事实上根据 Dianne Hackborn 的帖子不存在任何意图: Android Google Groups

于 2011-09-20T06:06:19.547 回答