我有一个小部件,单击时可以弹出小对话框。这些对话框由 singleInstance launchMode 中名为 RemoteActivity 的活动显示。在其中一个对话框中,有一个用于启动主应用程序 MainActivity 的按钮,该应用程序具有标准的启动模式。
但是,当单击此按钮并调用 startActivity() 时,MainActivity 不会启动,尽管我可以在 logcat 中看到相应的“Starting activity: Intent { ... }”。
如果我将 RemoteActivity 的 launchMode 设置为标准,则 MainActivity 会启动,但这不是我想要的,RemoteActivity 只是小部件的扩展,我不希望它与任何其他活动堆叠。
我也尝试过使用 FLAG_ACTIVITY_NEW_TASK 但它没有帮助,而且根据文档,它不应该是必需的:
另一方面,“singleInstance”活动不允许其他活动成为其任务的一部分。这是任务中的唯一活动。如果它启动另一个活动,则该活动被分配给不同的任务——就好像 FLAG_ACTIVITY_NEW_TASK 在意图中一样。
如何启动我的主要活动?
更新/勘误表:
MainActivity 实际上是启动的,但前提是它还不是任务的一部分。如果我通过启动器正常启动 MainActivity,然后按 Back 退出,那么 RemoteActivity 会启动 MainActivity。
但是,如果我没有按 Back,而是按 Home 离开 MainActivity,那么 RemoteActivity 将无法启动 MainActivity,尽管意图出现在 logcat 中。
我正在 Froyo 上对此进行测试。
知道发生了什么吗?