java - 根据通知操作点击打开不同的 Activity

标签 java android android-notifications

我正在尝试像whatsapp一样进行通知回复。

这是我的代码

public void sendNotification(String msg, Intent i, ContactModel contact)
    {
        i.putExtra("message", msg);
        i.putExtra("contact", new Gson().toJson(contact));
        i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

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

        String replyLabel = "Reply";
        RemoteInput remoteInput = new RemoteInput.Builder("KEY_REPLY")
                .setLabel(replyLabel)
                .build();

        PendingIntent contentIntent = PendingIntent.getActivity(context, 100, i,
                PendingIntent.FLAG_UPDATE_CURRENT);

        Bundle bundle = new Bundle();
        bundle.putBoolean("reply", true);
        NotificationCompat.Action replyAction = new NotificationCompat.Action.Builder(
                R.drawable.ic_phone, replyLabel, contentIntent)
                .addRemoteInput(remoteInput)
                .addExtras(bundle)
                .setAllowGeneratedReplies(true)
                .build();

        NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(context)
                        .setSmallIcon(R.drawable.ic_launcher)
                        .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher))
                        .setContentTitle(contact.getName())
                        .setDefaults(Notification.DEFAULT_SOUND)
                        .setStyle(new NotificationCompat.BigTextStyle()
                                .bigText("Content Hidden"))
                        .setContentText(msg)
                        .addAction(replyAction)
                ;

        mBuilder.setContentIntent(contentIntent);
        mNotificationManager.cancel(Constants.PUSH_ID);
        mNotificationManager.notify(Constants.PUSH_ID, mBuilder.build());
    }

现在我的通知显示“消息”和“回复”按钮。

我面临的问题是,我无法区分用户是选择“回复”按钮还是尝试打开通知。

我的主要目的是

Intent myIntent = new Intent(this, NotificationActivity.class);

我想要的是, 当用户单击“回复”按钮时,它会打开

Intent myIntent = new Intent(this, NotificationActivity.class);

当用户单击通知本身时,它会打开

Intent myIntent = new Intent(this, MainActivity.class);

即使那不可能,我怎样才能知道执行了哪个操作。

enter image description here

最佳答案

尝试添加

setContentIntent(new Intent(this, MainActivity.class))

其他信息 here

关于java - 根据通知操作点击打开不同的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42871838/

相关文章:

java - AspectJ + Gradle 配置

java - 使用与JBOSS兼容的ANT创建WAR

android - Android中用于SMS消息的数据结构

android - 图标未显示在 Android 牛轧糖的通知中

Android bundle 通知行为

java - 如何升级 javascript 以使用phonegap 2.3 自定义插件?

javascript - 我们可以在 Javascript 中实例化 Java 对象吗?

Android:从顶部绘制带有渐变的圆弧

Android:C 中的 usb hid 驱动程序

Android 群组通知添加摘要通知后不报警(Android 6.0)