我需要这样的流程:当通知出现并且用户单击它时,activityB 应该启动,如果用户单击后退按钮它应该转到 activityA,我的问题是,当用户单击通知并且 activityB 正在启动时,堆栈为空,如果用户单击后退按钮,应用程序行为就像按下主页按钮,在我单击启动器图标后,它启动启动器 Activity ,流程就像第一次启动。
还看到了谷歌的官方文档如何正确使用通知并保留 Activity 以获得更好的导航体验,但没有帮助。
这是显示通知的代码
private fun sendNotification() {
val mBuilder = NotificationCompat.Builder(this)
.setContentTitle(name)
.setContentText(messageBody)
val resultIntent = Intent(this, activityB::class.java)
val stackBuilder = TaskStackBuilder.create(this)
stackBuilder.addParentStack(activityA::class.java)
stackBuilder.addNextIntent(resultIntent)
val resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT)
mBuilder.setContentIntent(resultPendingIntent)
mNotificationManager.notify(mId, mBuilder.build())
}
这是 list 文件
<activity
android:name=".activityB"
android:parentActivityName="activityA" />
<activity android:name="activityA"/>
我不明白,我错过了什么
最佳答案
您必须更改 ParentStack 的 Activity 文件
stackBuilder.addParentStack(activityA::class.java)
到
stackBuilder.addParentStack(activityB::class.java)
关于android - TaskStackBuilder addParentStack() 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45689691/