将所选数据传递给通知中的另一个活动

时间:2017-03-20 07:08:49

标签: android

我收到如下通知。 通知1 通知2 通知3 通知1 通知2

用户按下“通知1”时。 “通知1”必须发送到另一个活动。

用户按下时,“通知2”。 “通知2”必须发送到另一项活动。

任何帮助

4 个答案:

答案 0 :(得分:0)

将通知数据保存在字符串中,并在点击事件的下一个活动中使用意图传递它。

见参考。 :pass data between activities in android

答案 1 :(得分:0)

点击PendingIntent时,您必须使用Activity打开Notification

首先创建一个应在Activity中使用的公共PendingIntent

PendingIntentintent.putString("key", "notification1")intent.putString("key", "notification2")上设置一些相同的字符串。

并在该Common Activity上获取您传递的String。根据您的相同数据,从该Common Activity中取消您的活动。

就是这样。

答案 2 :(得分:0)

操作会将用户直接从通知中提取到应用程序中的活动,在那里他们可以查看导致通知或进一步工作的事件。在通知中,操作本身由PendingIntent定义,该PendingIntent包含在您的应用程序中启动Activity的Intent。

如何构建PendingIntent取决于您正在启动的Activity类型。当您从通知启动活动时,您必须保留用户的预期导航体验。设计通知的部分保留了用户的预期导航体验。有两种常见情况:

  1. 常规 - 您正在启动属于应用程序正常工作流程的活动
  2. 特殊 - 如果用户从通知开始,则只会看到此活动。从某种意义上说,活动通过提供难以在通知本身中显示的信息来扩展通知。
  3. 这是您的答案,您可以使用共享偏好作为中间人来存储将您的激活链接到每个活动的小信息。

答案 3 :(得分:0)

使用评论附加代码段 -

NotificationManager mNotificationManager = (NotificationManager)
                this.getSystemService(Context.NOTIFICATION_SERVICE);

        Intent intent = new Intent(this, HomeActivity.class); // Redirected to HomeActivity
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        int _notificationId = (int) System.currentTimeMillis();
        String _message = remoteMessage.get("text");

        intent.putExtra(KEY_NOTIF_ID, _notificationId);

        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                intent, PendingIntent.FLAG_UPDATE_CURRENT);

        NotificationCompat.Builder mBuilder =
                (NotificationCompat.Builder) new NotificationCompat.Builder(this)
                        .setSmallIcon(R.drawable.ic_notification_small) // Providing and icon
                        .setAutoCancel(true) // AutoCancelable
                        .setContentTitle(getResources().getString(R.string.app_name)) // Title
                        .setStyle(new NotificationCompat.BigTextStyle()
                                .bigText(_message))
                        .setContentText(_message) // Message
                        .setContentIntent(contentIntent); // This will the intent to start an activity once Notification is clicked
        mNotificationManager.notify(_notificationId /* ID of notification */, mBuilder.build());