0

这是我的问题:

  • 我在活动A
  • Activity A 启动一个新的Activity B 呼叫一个号码(Intent.ACTION_CALL)
  • 怎么可能恢复活动 A - 我不想完成活动 B,我只是想把活动 A 带到前面

目前我有一个广播接收器,它能够在呼叫发生时启动一个新的活动实例 A。如果我从那里使用“FLAG_ACTIVITY_SINGLE_TOP”开始活动 A,我会收到错误消息

Calling startActivity() from outside of an Activity
context requires the FLAG_ACTIVITY_NEW_TASK flag.
Is this really what you want?

但我不想要新任务,我想恢复活动 A

非常感谢!

编辑:也许我可以简单地模拟点击后退按钮?

4

2 回答 2

1

考虑到您的用例 - BroadcastReceiver 没有启动活动的任务 -singleTask在清单中应该做你想做的事。

“singleTask” 系统创建一个新任务并在新任务的根目录下实例化活动。但是,如果活动的实例已经存在于单独的任务中,系统会通过调用其 onNewIntent() 方法将意图路由到现有实例,而不是创建新实例。一次只能存在一个活动实例。

注意:虽然活动在一个新任务中开始,但“后退”按钮仍将用户返回到上一个活动。

取自:http: //developer.android.com/guide/components/tasks-and-back-stack.html

于 2013-02-14T08:22:13.620 回答
0

你试过使用FLAG_ACTIVITY_REORDER_TO_FRONT吗?

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT

它似乎完全符合您的需要。

于 2013-02-13T16:00:07.733 回答