我有一个小部件,可以弹出小对话框时点击。这些对话框是由singleInstance launchMode中名为RemoteActivity的活动显示的。在其中一个对话框中,有一个启动主应用程序MainActivity的按钮,它具有标准的launchMode。
然而,当这个按钮被点击,startActivity()调用,MainActivity没有启动,虽然我可以看到相应的"Starting activity: Intent{…}"
如果我将RemoteActivity的launchMode设置为标准,那么MainActivity就会启动,但这不是我想要的,RemoteActivity只是小部件的扩展,我不希望它与任何其他活动堆叠。
我也尝试了FLAG_ACTIVITY_NEW_TASK,但它没有帮助,而且根据文档,它不应该是必要的:
一个"singleInstance"活动,在另一方面,不允许其他活动将成为其任务的一部分。这是任务中唯一的活动。如果它开始了另一个活动活动被分配给不同的人如果FLAG_ACTIVITY_NEW_TASK
如何启动主活动?
UPDATE/ERRATA:
MainActivity实际上是启动的,但只有当它还不是任务的一部分。如果我通过启动器正常启动MainActivity,然后按Back退出,那么RemoteActivity确实启动了MainActivity。
但是,如果,而不是按回,我按Home离开MainActivity,那么RemoteActivity不能启动MainActivity,虽然意图出现在logcat。
我正在Froyo上测试这个。
知道发生了什么事吗?
也许noHistory标志将为您正在寻找的工作?
我发现了这个问题:这种行为只发生在RemoteActivity中startActivity()之前调用finish()时。如果我在finish()之前调用startActivity(),那么无论MainActivity是否已经是现有任务的一部分,它都可以正常工作。
图…