首先我读了this article,但对我来说有点复杂。我需要的是在onBackPressed()覆盖中转到我想要的活动(导航如果存在于后台堆栈中,或者如果不是则使用Intent启动它)。我应该管理堆栈 或者是其他东西 ?如果有,怎么样?如果没有什么是简单的方法呢?
P.S:我不使用ActionBar
答案 0 :(得分:1)
你应该覆盖第二个活动的onBackPressed()
方法并将android:launchMode="singleInstance"
添加到AndroidManifest.xml
中的第一个活动中,这将从backstack启动第一个活动,或者如果它不存在则创建新活动返回堆栈。
答案 1 :(得分:1)
在需要的地方使用startActivityForResult()。不要创建相同活动的新实例。也就是说,如果您想要返回上一个活动,只需从此活动中调用finish()
即可。
Understand different launchmodes
如上面的链接所述,singleInstance
launchMode可能很棘手,可能会导致问题。
答案 2 :(得分:1)
求助:作为mentioned in this answer并根据评论,如果我们想将(现有)活动置于前面,将Intent标志设置为:
Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
不会创建我们想要的Activity的新实例,只需将它带到前面。如果我们在一个活动之上有多个活动,这将非常有用。