【发布时间】:2012-03-27 00:58:38
【问题描述】:
如果我的程序如下:
- 启动活动 A -> 活动 B
- 按“主页”按钮。
- 再次点击应用程序。
结果:“活动 B”出现(它恢复)。
- 启动活动 A -> 活动 B
- 按“返回”按钮。
- 再次点击应用程序。
结果:“活动 A”出现(它重新启动)。
我想从 BroadcastReceiver 做同样的事情。
- 启动活动 A -> 活动 B
- 按“主页”按钮。
- BroadcastReceiver 接收到广播并希望“恢复”应用程序。
我的预期结果:“活动 B”出现。
我想从 BroadcastReceiver 做同样的事情。
- 启动活动 A -> 活动 B
- 按“返回”按钮。
- BroadcastReceiver 接收到广播并想要“重新启动”应用程序。
当前结果:“活动 A”出现。
以下代码没有达到我的预期:
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, ActivityA.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
我也尝试了“Intent.FLAG_ACTIVITY_LAUNCED_FROM_HISTORY”,但没有成功。
【问题讨论】:
-
您的意思是,在您使用新任务标志启动活动 A 后,活动 A 没有出现?
-
无论如何你可以尝试使用
singleTask和FLAG_ACTIVITY_NEW_TASK来实现。 -
不,如果按下“主页”按钮,我希望显示“活动 B”。
-
我尝试了 singleTask 和 FLAG_ACTIVITY_NEW_TASK 但按下“主页”按钮时它没有恢复到活动 B。
-
声明你的activity B启动模式是
single task,然后用你上面的代码启动它,除了把ActivityA.class改成ActivityB.class
标签: android android-activity android-intent broadcastreceiver