Java 从广播接收器恢复以前的活动

Java 从广播接收器恢复以前的活动,java,android,android-intent,android-activity,broadcastreceiver,Java,Android,Android Intent,Android Activity,Broadcastreceiver,我的问题是: 我在做活动A 活动A启动一个新的活动B呼叫一个号码(Intent.ACTION\u call) 如何恢复活动A?我不想完成活动B,我只想把活动A带到最前面 目前,我有一个broadcastReceiver,它能够在调用发生时启动活动a的新实例。如果我从那里用“FLAG\u activity\u SINGLE\u TOP”启动活动A,我会得到错误 Calling startActivity() from outside of an Activity context require

我的问题是:

  • 我在做活动A
  • 活动A启动一个新的活动B呼叫一个号码(Intent.ACTION\u call)
  • 如何恢复活动A?我不想完成活动B,我只想把活动A带到最前面
目前,我有一个broadcastReceiver,它能够在调用发生时启动活动a的新实例。如果我从那里用“FLAG\u activity\u SINGLE\u TOP”启动活动A,我会得到错误

Calling startActivity() from outside of an Activity
context requires the FLAG_ACTIVITY_NEW_TASK flag.
Is this really what you want?
但我不想要新任务,我想要恢复活动a

非常感谢

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

您是否尝试过使用
标记活动\u重新排序\u到前面


它似乎正是您所需要的。

考虑到您的用例,清单中没有用于启动活动的任务的BroadcastReceiver-
singleTask
应该执行您想要的操作

“单一任务” 系统创建一个新任务,并在 新任务。但是,如果活动的实例已存在于 在单独的任务中,系统通过 调用其onNewIntent()方法,而不是创建新实例。 一次只能存在一个活动实例

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


摘自:

这可以用2个片段/dialogfragments在同一个活动上实现,但不认为用2个活动就可能实现……是的,我尝试过这个-同样的错误问题似乎是,Phonecall活动没有上下文:对不起,我的意思是broadcastReceiver没有上下文(Phonecall活动具有正确的上下文,但我无法手动复制它…)