如何基于通知打开特定活动

时间:2015-04-17 09:46:00

标签: android android-notifications android-pendingintent

我目前正在开发一个提醒应用,其中用户收到包含提醒名称的通知,然后重定向到包含详细提醒文本的活动。 但是,我每次只能重定向到同一个活动。 我正在使用此代码:

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), 0);
notification.setLatestEventInfo(this, title, text, contentIntent);

因此,在单击通知时会重定向到MainActivity。我想重定向到一个单独的屏幕,然后根据键值显示该活动的文本。 我如何实现这一目标?

谢谢

3 个答案:

答案 0 :(得分:2)

只需使用其他PendingIntent更改Activity和/或附加您用于创建Intent的{​​{1}}的额外信息:

PendingIntent

而在你身上Intent launchIntent = new Intent(this, AnotherActivity.class) launchIntent.putExtra("myKey", "myValue"); //.... PendingIntent contentIntent = PendingIntent.getActivity(this, 0, launchIntent , 0); notification.setLatestEventInfo(this, title, text, contentIntent); 的{​​{1}}:

Activity

答案 1 :(得分:0)

只需传递意图中的值即可。例如

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), 0);
contentIntent.putExtra("phone", value);
contentIntent.putExtra("name", value);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, contentIntent,
            PendingIntent.FLAG_CANCEL_CURRENT);

答案 2 :(得分:0)

问题已经得到解答和接受,但这是另一种方法:

int mId = 1;
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, TwoActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
    Notification.Builder builder = new Notification.Builder(this)
            .setContentIntent(pendingIntent)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentTitle("Title")
            .setContentText("Content")
            .setDefaults(Notification.DEFAULT_ALL)
            .setAutoCancel(true)
            .setNumber(1);
    NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    manager.notify(mId, builder.build());