Я могу найти способ отправить параметры моей деятельности из моего уведомления.
У меня есть сервис, который создает уведомления. Когда пользователь нажимает на уведомление, я хочу открыть свою основную деятельность с некоторыми специальными параметрами. Например, идентификатор элемента, чтобы моя деятельность могла загрузить и представить специальный подробный вид элемента. Более конкретно, я загружаю файл, и когда файл загружается, я хочу, чтобы уведомление имело намерение, чтобы при нажатии оно открывало мою активность в специальном режиме. Я пытался использовать putExtra
свое намерение, но, кажется, не могу извлечь его, поэтому я думаю, что я делаю это неправильно.
Код из моего сервиса, который создает Уведомление:
// construct the Notification object.
final Notification notif = new Notification(R.drawable.icon, tickerText, System.currentTimeMillis());
final RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.custom_notification_layout);
contentView.setImageViewResource(R.id.image, R.drawable.icon);
contentView.setTextViewText(R.id.text, tickerText);
contentView.setProgressBar(R.id.progress,100,0, false);
notif.contentView = contentView;
Intent notificationIntent = new Intent(context, Main.class);
notificationIntent.putExtra("item_id", "1001"); // <-- HERE I PUT THE EXTRA VALUE
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notif.contentIntent = contentIntent;
nm.notify(id, notif);
Код из моего Activity, который пытается получить дополнительный параметр из уведомления:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Bundle extras = getIntent().getExtras();
if(extras != null){
Log.i( "dd","Extra:" + extras.getString("item_id") );
}
Дополнения всегда нулевые, и я никогда ничего не получаю в свой журнал.
Кстати ... onCreate
запускается только тогда, когда моя активность начинается, если моя активность уже началась, я также хочу собрать дополнительные данные и представить свою активность в соответствии с item_id, который я получаю.
Любые идеи?
PendingIntent.getActivity()
с флагомPendingIntent.FLAG_UPDATE_CURRENT
, в противном случае одни и те же статистические данные будут повторно использоваться для каждого уведомления.