3

我有Activity A(主要)和Activity B

事实:活动 A 有:android:launchMode="singleInstance"

通常的场景是:

  1. 用户启动应用程序 > Activity A
  2. 用户点击一个项目 >Activity B

    3.A. 如果用户点击后退/上一步按钮 > Back to A没有在 B 上调用 finish()

    • 用户单击与以前相同的项目 > Forth to B
    • 在这一点上,他可以在没有新实例的情况下来回走动。这一切都在堆栈中,它不会重新创建活动。(好的!)

    3.B。如果用户点击主页,然后转到任务管理器并将应用程序带到前面> Activity B(一切都很好,到目前为止)

    • 如果用户单击 UP 按钮,它会转到 TASK MANAGER,我希望它转到Activity A(后退按钮预计会以这种方式工作,所以让我们关注 UP 按钮)。

这是我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 到前面,而不向堆栈添加项目。)

让我知道我是否清楚地解释了自己以及您是否需要更多信息。

4

0 回答 0