我需要这样的流程:当通知出现并且用户点击它时,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/