Android 通知导航到现有活动
Posted
技术标签:
【中文标题】Android 通知导航到现有活动【英文标题】:Android notification navigate to existing activity 【发布时间】:2021-06-07 19:27:06 【问题描述】:我正在修改 android 通知。我有一个带有片段导航的 Activity 应用程序,这就是我想要实现的目标:当我点击通知时,我想要
如果没有,则启动我的 Activity 的新实例 如果后堆栈或其他任务中有一个,请重新打开 在我留下的片段中我目前在做什么:
val intent = Intent(context, MainActivity::class.java)
return TaskStackBuilder.create(context).run
addNextIntentWithParentStack(intent)
getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT)
我为我的 Activity 尝试了清单中的每个 launchMode
,但它总是从第一个 Activity 屏幕开始,而不是我离开应用的那个屏幕。
【问题讨论】:
【参考方案1】:规则 #1) 永远不要使用TaskStackBuilder
。默认行为是重置任务(即:删除堆栈中的任何现有活动),这通常不是您想要的。 TaskStackBuilder
可用于构建复杂的后台堆栈,但您确实需要了解它在幕后是如何工作的,并且它有很多副作用。一般来说,尽量避免。
规则 #2)如果您只想将现有任务置于前台,无论您离开时它处于何种状态,请使用来自PackageManager
的“启动Intent
”:
Intent intent = getPackageManager()
.getLaunchIntentForPackage("package.name.of.app.to.launch");
startActivity(intent);
而且您不需要任何特殊标志或启动模式。
规则 #3) 避免使用特殊的启动模式 singleTask
和 singleInstance
。它们通常不是您所需要的,并且它们有很多不明显的副作用。如果你正在构建一个主屏幕替换,你通常只需要这些。
【讨论】:
以上是关于Android 通知导航到现有活动的主要内容,如果未能解决你的问题,请参考以下文章