使用Android导航组件从第一个活动导航到第二个活动时如何关闭/完成第一个活动

时间:2019-03-15 13:35:21

标签: android android-activity android-architecture-components android-architecture-navigation

我第一次使用android导航组件,并且对Android体系结构组件也很陌生。据我所知,android体系结构中的导航组件主要在同一活动中使用片段进行导航。我试图使用导航组件从一个活动导航到另一个活动:

activity.finish()              
Navigation.findNavController(btnView).navigate(R.id.activity)

此处R.id.activity是在导航图XML文件中定义的活动的ID。

当我按下“后退”按钮时,我仍然能够看到前一个屏幕。我的问题是后向堆栈在导航组件中的工作方式,为什么即使调用了该活动的destroy方法(由于activity.finish()也使我的第一个活动出现了?

1 个答案:

答案 0 :(得分:0)

我可以回答您的第二部分,而第一部分会更好地理解您的情况。

通过执行以下方法无法完成您的活动,因为如果完成该活动,则您不会在后堆栈上看到它。

  

activity.finish()

在导航方法之后完成当前活动。以下是完成当前活动的正确方法。

btn.setOnClickListener{            
Navigation.findNavController(btnView).navigate(R.id.secondActivity)
(activity as currentActivity).finish()
}