如何从singleInstance活动开始活动?

时间:2011-04-27 13:32:21

标签: android android-activity launchmode

我有一个小部件,可以在单击时弹出小对话框。这些对话框由singleInstance launchMode中名为RemoteActivity的活动显示。在其中一个对话框中,有一个按钮用于启动主应用程序MainActivity,它具有标准的launchMode。

但是,当单击此按钮并调用startActivity()时,MainActivity不会启动,虽然我可以在logcat中看到相应的“Starting activity:Intent {...}”。

如果我将RemoteActivity的launchMode设置为标准,那么MainActivity会启动,但这不是我想要的,RemoteActivity只是widget的扩展,我不希望它与任何其他活动堆叠。

我也尝试过使用FLAG_ACTIVITY_NEW_TASK,但它没有帮助,无论如何都不需要according to the docs

  

一个“singleInstance”活动,关于   另一方面,不允许其他   活动成为其任务的一部分。   这是任务中唯一的活动。如果   它开始了另一项活动   活动被分配给不同的   任务 - 就像FLAG_ACTIVITY_NEW_TASK一样   是故意的。

如何启动我的主要活动?

UPDATE / ERRATA:

MainActivity实际上已启动,但前提是它尚未成为任务的一部分。如果我通过启动器正常启动MainActivity,然后按Back退出,则RemoteActivity会启动MainActivity。

但是,如果我按Home不离开Back,而是按Home离开MainActivity,则RemoteActivity无法启动MainActivity,尽管意图出现在logcat中。

我在Froyo上测试了这个。

知道发生了什么事吗?

2 个答案:

答案 0 :(得分:0)

也许noHistory flag会对你要找的东西有用吗?

答案 1 :(得分:0)

我发现了问题:只有在RemoteActivity中的startActivity()之前调用finish()时才会出现此行为。如果我在finish()之前调用startActivity(),那么无论MainActivity是否已经是现有任务的一部分,它都能正常工作。

去图......