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

10-13 03:06