2015-04-17 2 views
0

В настоящее время я работаю над приложением напоминаний, в котором пользователь получает уведомление с именем напоминания и затем перенаправляется на операцию, содержащую текст напоминания в деталях. Я, однако, могу только перенаправлять на ту же самую активность каждый раз. Я использую этот код:Как открыть конкретную операцию на основе уведомления

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

Так что перенаправляет к MainActivity щелкать уведомления. Я хотел бы перенаправить на отдельный экран, а затем на основе ключевого значения отобразить текст этого действия. Как это достичь?

Благодаря

ответ

2

Просто измените PendingIntent с помощью другого Activity и/или добавить дополнительную информацию о Intent вы используете для создания 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); 

И чем, в вас Activity «s onCreate():

//... 
getIntent().getStringExtra("myKey") 
//do your stuff.. 
+0

Нет мой вопрос был о том, как я могу решить, что будет отображаться в «AnotherActivity», на основании которых определенное значение что я передаю уведомление? –

+0

@ShivamBhalla Я также ответил в скобках об этом. Я отредактирую свой ответ, чтобы уточнить. – bonnyz

+0

Спасибо! Это прекрасно работает. Я принял ответ. –

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); 
0

Вопрос уже anwered и приняты, но вот еще один метод:

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()); 
Смежные вопросы