我有一个应用程序,我从活动 A->B->C->D 移动。现在我希望当我按下 D 上的按钮时,我的堆栈应该是 A->D。我已经从 android API 级别 8 到 10 做到了这一点,但在 android 4.0 上,我有“不保留活动”设置,这些设置会在后台杀死我的活动,从而使 Intent.FLAG_ACTIVITY_CLEAR_TOP 和 Intent.FLAG_ACTIVITY_NEW_TASK 无用,因为我的活动 a 不存在。
我该如何处理这种情况。任何帮助都非常感谢。
我有一个应用程序,我从活动 A->B->C->D 移动。现在我希望当我按下 D 上的按钮时,我的堆栈应该是 A->D。我已经从 android API 级别 8 到 10 做到了这一点,但在 android 4.0 上,我有“不保留活动”设置,这些设置会在后台杀死我的活动,从而使 Intent.FLAG_ACTIVITY_CLEAR_TOP 和 Intent.FLAG_ACTIVITY_NEW_TASK 无用,因为我的活动 a 不存在。
我该如何处理这种情况。任何帮助都非常感谢。
不要保留活动我认为这是模拟场景的开发人员选项。
我用来清理后台堆栈(在您的情况下只有活动 B 和 C)是在该活动上注册一个广播,并在用户按下按钮时从 D 活动启动一个意图。
public void onClick(View v){
Intent broadcastIntent = new Intent();
broadcastIntent.setAction("com.package.CLEAR_B_C");
sendBroadcast(broadcastIntent);
}
所以当 B 和 C 收到意图时,调用 finish()。