android - 在通知中使用 TaskStackBuilder 会重新创建一个 Activity

标签 android android-activity notifications android-pendingintent taskstackbuilder

当 Activity 中发生某些事件时,我会向用户显示一条通知。当我创建通知时,如果我的 Activity 被系统清除,我会使用 TaskStackBuilder 来确保我有 backstack Activity 列表。我的代码看起来像这样:

    ...
    TaskStackBuilder builder = TaskStackBuilder.create(sContext);
    builder.addNextIntent(new Intent(context, ActivityA));
    builder.addNextIntent(new Intent(context, ActivityB));
    builder.addNextIntent(new Intent(context, ActivityC));
    PendingIntent pendingIntent = 
            builder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT)

    Notification.Builder builder = new Notification.Builder(context)
            .setContentTitle(title))
            .setContentText(notificationText)
            .setSmallIcon(getNotificationIcon())
            .setContentIntent(pendingIntent);

    builder.build();
    ...

因此,打开的 Activity 将是最后添加的,即 ActivityC(我不希望重新创建它)。
我找到的一个解决方案是:How to make notification resume and not recreate activity?
据说我不应该使用 TaskStackBuilder,但这不是我想要的。我想从通知开始一个 Activity ,使用 TaskStackBuilder 而不是重新创建整个 Activity 。

任何解决方案/建议?

最佳答案

如果您只想使用通知允许用户以任何状态返回任务,那么您不需要 TaskStackBuilder。

看:

  • Notification to restore a task rather than a specific activity?
  • Resume application and stack from notification
  • Starting app only if its not currently running
  • 关于android - 在通知中使用 TaskStackBuilder 会重新创建一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33542919/

    相关文章:

    android - isValidFragment Android API 19

    android - 无法在 android studio 3.4.1 中解析符号 'NotificationCompat '

    android - 从 Android 库项目覆盖 Activity

    java - 如何在android中创建图像按钮?

    android - 我应该如何使用 alarmmanager 每天和中午 12 点运行服务

    objective-c - 通话结束时 Skype 推送通知 "[person] is calling..."消失 - 怎么办?

    android - 如何添加同一个库 Gradle 的多个版本

    android - Android 中的自定义蓝牙协议(protocol)支持

    android - 使用 SurfaceView 和 4 个 Canvas 图像如何找到哪个图像被触摸了?

    Android 返回对象作为 Activity 结果