恢复广播接收器的先前活动

时间:2013-02-13 14:54:45

标签: java android android-intent android-activity broadcastreceiver

这是我的问题:

  • 我正在参加活动A
  • 活动A启动新活动B以拨打号码(Intent.ACTION_CALL)
  • 如何恢复活动A-我不想完成活动B,我只是想把活动A带到前面

目前我有一个broadcastReceiver,它可以在调用发生时启动活动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

非常感谢!

编辑: 也许我可以简单地模拟一下BACK按钮的点击?

2 个答案:

答案 0 :(得分:1)

考虑您的使用案例 - BroadcastReceiver没有启动活动的任务 - 清单中的singleTask应该按照您的意愿行事。

  

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

     

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

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

答案 1 :(得分:0)

您是否尝试过使用FLAG_ACTIVITY_REORDER_TO_FRONT

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

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