Сейчас я создаю намерение уведомления в соответствии со следующим:GCM сообщение запускает Intent
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Intent notificationIntent = new Intent(context, MyActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
notificationIntent.setAction(Long.toString(System.currentTimeMillis()));
notificationIntent.putExtra("key", value);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
Notification updateComplete = new NotificationCompat.Builder(context)
.setContentTitle(title)
.setContentText(msg)
.setTicker(title)
.setWhen(System.currentTimeMillis())
.setContentIntent(contentIntent)
.setDefaults(Notification.DEFAULT_SOUND)
.setAutoCancel(true)
.setSmallIcon(R.drawable.icon_notifications)
.build();
notificationManager.notify(100, updateComplete);
Когда приложение уже находится в фоновом режиме, все работает. Вызывается функция onNewIntent
, и я получаю значение из дополнительных уведомлений. Однако, если приложение НЕ находится в фоновом режиме, оно переходит в корневую активность (экран входа в систему), которая переадресует пользователя на MyActivity
. Но корневая активность не получает вызов onNewIntent
, и к тому времени, когда пользователь доберется до MyActivity
, дополнительные функции будут потеряны.
Есть ли вообще вокруг этого?
Я пытался хранить значения в другом месте безрезультатно ... Это включает в себя общие настройки.
kvish Вы можете проверить, работает ли приложение или нет? Если приложение работает, то нет необходимости в дополнительном уведомлении. Прямо? – dipali
Причина Мне нужно уведомление. Это связано с тем, что у меня есть некоторые данные, которые необходимо передать этому «Activity». В противном случае, как я узнаю, нажал ли пользователь push-уведомление или нет? Я хочу, чтобы иметь возможность извлекать некоторые данные из push и показывать соответствующую информацию ... есть ли более простой способ сделать это? – KVISH