TaskStackBuilder addParentStack()方法不起作用

时间:2017-08-15 09:01:53

标签: android kotlin android-notifications

我需要这样的流程:当通知出现并且用户点击它时,activityB应该启动,比如果用户单击后退按钮它应该是activityA,我的问题是,当用户点击通知并且activityB正在被启动时,堆栈是空的,如果用户点击后退按钮,应用程序行为就像按下主页按钮一样,点击启动器图标后,它启动启动器活动,流程就像第一次启动一样。

还看到谷歌的官方文档如何正确使用通知以保存活动以获得更好的导航体验,但没有帮助。

这是带有显示通知的代码

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())
}

这是清单文件

   <activity
        android:name=".activityB"
        android:parentActivityName="activityA" />

   <activity android:name="activityA"/>

我不明白,我缺少什么

1 个答案:

答案 0 :(得分:0)

更改它,...

    stackBuilder.addParentStack(activityA::class.java)

收件人

    stackBuilder.addParentStack(activityB::class.java)