即使启动了其他活动,如何在后台始终保留一种活动?

问题描述

因此,假设我有3种类型的活动,每种活动都有自己的清单文件和意图过滤器:

  • HomeActivity
  • ProfileActivity-(深层链接网址路径:/ profile-view)
  • SearchActivity-(深层链接网址路径:/ search-view)

在我的应用中,用户可以直接通过意图过滤器深入链接到ProfileActivity或SearchActivity。但是,发生这种情况时,后台程序中将没有HomeActivity。我想确保每次启动非Homeactivity时都在后台堆栈中启动HomeActivity。我该怎么办?

我正在考虑以某种方式检查HomeActivity是否存在,如果不存在,请首先启动它?

解决方法

仔细研究Android Navigation Component.,该库句柄的深层链接。在这里看看:Create a deep link for a destination

当用户通过显式深层链接打开您的应用程序时,将清除任务后退堆栈,并将其替换为深层链接目标。嵌套图形时,每个嵌套级别的起始目标(即,层次结构中每个元素的起始目标)也被添加到堆栈中。这意味着,当用户从深层链接目标按下“返回”按钮时,他们将在导航堆栈中向上导航,就像从应用程序的入口点进入您的应用程序一样。