0

我有一个小部件,单击时可以弹出小对话框。这些对话框由 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 上对此进行测试。

知道发生了什么吗?

4

2 回答 2

0

也许noHistory 标志将适用于您正在寻找的东西?

于 2011-04-27T13:37:20.037 回答
0

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

去搞清楚...

于 2011-04-27T14:14:15.043 回答