我完全同意以下导航

想象一下,Book细节是在BookDetailActivity的不同实例中完成的。

在按book2详细信息之前的堆栈为:

  • BookDetailActivity(书2-您在这里)
  • BookDetailActivity(书1)
  • AllBooks Activity

  • 如果我遵循guidelines,我将使用:
         Intent parentActivityIntent = new Intent(this, AllBooksActivity.class);
            parentActivityIntent.addFlags(
                    Intent.FLAG_ACTIVITY_CLEAR_TOP |
                    Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(parentActivityIntent);
            finish();
    

    但是此代码的最大问题是BookDetailActivity(书1)仍然存在!

    在“上”之后按返回按钮将带来书1的详细信息。

    如何杀死原始BookDetailActivity和按下的 Activity 之间的所有AllBooksActivity

    最佳答案

    related guidelines article注意以下内容:



    由于执行了此操作,因此应该使用FLAG_ACTIVITY_CLEAR_TOP关闭BookDetailActivity1。如果它可能还活着并在按Back时显示,则唯一的方法是是否在AllBooksActivity之前启动它。

    至于不需要FLAG_ACTIVITY_NEW_TASK(建议由Android开发者的答案):



    ...因此,如果您的 Activity 存在,它将不会启动新任务。

    关于android - 根据准则处理 “Up”导航的正确方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14040620/

    10-10 22:46