我有Activity A
(主要)和Activity B
。
事实:活动 A 有:android:launchMode="singleInstance"
通常的场景是:
- 用户启动应用程序 >
Activity A
。 用户点击一个项目 >
Activity B
3.A. 如果用户点击后退/上一步按钮 > Back to
A
(没有在 B 上调用 finish())- 用户单击与以前相同的项目 > Forth to
B
。 - 在这一点上,他可以在没有新实例的情况下来回走动。这一切都在堆栈中,它不会重新创建活动。(好的!)
3.B。如果用户点击主页,然后转到任务管理器并将应用程序带到前面>
Activity B
(一切都很好,到目前为止)- 如果用户单击 UP 按钮,它会转到 TASK MANAGER,我希望它转到
Activity A
(后退按钮预计会以这种方式工作,所以让我们关注 UP 按钮)。
- 用户单击与以前相同的项目 > Forth to
这是我Activity B
对 BACK 和 UP 按钮的实现。
@Override
public void onBackPressed() {
moveTaskToBack(true);
// I don't want to finish() the activity, so the user can reclick the same
// item without reloading the whole activity again (webview slow when parsing html).
return;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
moveTaskToBack(true);
// I don't want to finish() the activity... idem.
// I need to implement here the bring Activity A to front
break;
}
}
所以,我想要的是:“返回”以Activity A
保持相同的想法,即在需要时使用堆栈重新加载 Activity B,而不使用 Intents(除非它调用 Activity 到前面,而不向堆栈添加项目。)
让我知道我是否清楚地解释了自己以及您是否需要更多信息。