自定义返回导航

Customize back navigation

首先,我阅读了 this article,但对我来说有点复杂。我需要做的就是在 onBackPressed() override 中转到我想要的 activity (如果存在于返回堆栈中则导航,如果不存在则使用 Intent 启动它)。我应该管理后台堆栈吗 或者是其他东西 ?如果是怎么办?如果没有,什么是简单的方法?

P.S : 我不使用 ActionBar

您应该覆盖第二个 activity 的 onBackPressed() 方法并将 android:launchMode="singleInstance" 添加到 AndroidManifest.xml 中的第一个 activity 这将启动第一个 activity 来自 backstack 或创建新的,如果它不存在于 backstack 中。

在任何需要的地方使用 startActivityForResult()。不要创建相同 activity 的新实例。也就是说,如果你想回到之前的 activity,只需从这个 activity 调用 finish()

Understand different launchmodes

如上面 link 中所述,singleInstance launchMode 可能很棘手,可能会导致问题。

已解决:如 mentioned in this answer 并根据评论,如果我们只想将(现有的)Activity 放在前面,请将 Intent 标志设置为:

    Intent.FLAG_ACTIVITY_REORDER_TO_FRONT

不会创建我们想要的 Activity 的新实例,只需将其放在前面即可。如果我们在一个之上有多个活动,这将很有用。