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

问题描述 投票:1回答:1

我第一次使用Android导航组件,我也是Android架构组件的新手。据我所知,android体系结构中的导航组件主要使用片段进行同一活动中的导航。我试图使用导航组件从一个活动导航到另一个活动:

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

这里R.id.activity是导航图XML文件中定义的活动的id。

当我按下后退按钮时,我仍然可以看到上一个屏幕。我的问题是后端堆栈如何在导航组件中工作以及为什么我的第一个活动出现,即使调用活动的destroy方法(由于activity.finish())?

android android-activity android-architecture-components android-architecture-navigation
1个回答
0
投票

我可以回答你的第二部分第一部分有人会更好地理解会解释你。

您的活动未通过执行以下方法完成,因为如果它已完成,那么您不会在后台堆栈中看到它。

activity.finish()

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

btn.setOnClickListener{            
Navigation.findNavController(btnView).navigate(R.id.secondActivity)
(activity as currentActivity).finish()
}
© www.soinside.com 2019 - 2024. All rights reserved.