【问题标题】:Android Notification Click - don't backstack activityAndroid 通知点击 - 不要回溯活动
【发布时间】:2015-06-14 00:01:02
【问题描述】:

我有一个后台服务,它会发出通知。

我想要下一件事:

如果我单击通知但应用程序未打开,请打开 XActivity。

如果应用程序已打开并创建了 XActivity,请转到那里并且不要重新创建活动(因为如果发生这种情况,在返回键上我将再次看到相同的活动)。

我的通知代码

 NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(context)
                    .setSmallIcon(R.drawable.ic_launcher)
                    .setContentTitle("New posts!")
                    .setContentText("New funny posts had just arrived! Click here to see them!");
    mBuilder.setAutoCancel(true);
    Intent resultIntent = new Intent(context, XActivity.class);

    PendingIntent resultPendingIntent =
            PendingIntent.getActivity(
                    context,
                    0,
                    resultIntent,
                    PendingIntent.FLAG_UPDATE_CURRENT
            );
    mBuilder.setContentIntent(resultPendingIntent);

    int mNotificationId = 001;

// 获取 NotificationManager 服务的实例 NotificationManager mNotifyMgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); // 构建通知并发出它。 mNotifyMgr.notify(mNotificationId, mBuilder.build());

我从 XActivity 启动服务。 (只是一个活动名称示例)

谢谢。

【问题讨论】:

  • 你的问题是当你点击通知 XActivity 打开并且当你按下设备返回按钮 XActivity 直到那里时,你想退出应用程序。请让我说清楚。
  • 在此处查看Guide 并找到“设置特殊活动 PendingIntent”。

标签: android android-intent notifications


【解决方案1】:

我遇到了同样的问题,我所做的是,我将此行 android:launchMode="singleTop" 添加到清单中的我的活动中,并且它有效。

【讨论】:

    【解决方案2】:

    在您的情况下,重复活动的问题是由于 Android 中 Activity 的标准结构设计。要仅创建单个活动实例(无重复),您需要在清单文件中为您的活动提供 launchMode 属性。您可以使用 singleTop 属性来实现此行为。您可以在提供的链接中阅读更多内容。

    此外,对于新的数据访问,您可以使用onNewIntent() 来获取此活动的新意图,并使用setIntent() 设置意图并继续使用新数据。

    希望这会有所帮助。

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多