android - TaskStackBuilder addParentStack() 方法不起作用

标签 android kotlin android-notifications

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

相关文章:

android - Windows下Cmake Opencv for Android...找不到iostream

android - 开始使用 Android 游戏和 AdMob

function - 如何从 Kotlin 中的函数返回具有不同类型(其中一个是数据类)的多个值?

android - Cordova 无法使用 cordova-plugin-local-notifications 构建

android - 在 android 通知中创建一个 map Activity

android - 在 Android 中以编程方式保存到可绘制文件夹

android - listview 没有从我的 for 循环中填充,我做错了什么?

android - 如何从协程 kotlin 获取值(value)?

kotlin - Kotlin 中 var 和 val 有什么区别?

flutter - 如何在 Isolate 上实例化本地通知?