Не могу поставить дополнения для намерения в уведомлении - PullRequest
3 голосов
/ 18 августа 2011

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

Notification notification = new Notification(R.drawable.notification_icon, "Title", 0);
Intent relaunchIntent = new Intent(this, SomeClass.class);
relaunchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
relaunchIntent.putExtra("load", getId());
notification.setLatestEventInfo(this, "Title", "Tap here to open", PendingIntent.getActivity(this, 0, relaunchIntent, 0);
notificationManager.notify(1234, notification);

А потом из SomeClass, это выглядит так ...

if(getIntent().getExtras() != null)
    load(getIntent().getExtras().getInt("load", -1));

Что странно, так это то, что я получаю противоречивые результаты, когда читаю значение из метода getInt(). Иногда я получаю значения вещей, которые я установил в предыдущих уведомлениях. Например, я получаю значение 3, когда я установил это значение равным 4. Я знаю, что это очень странно и странно, поэтому мне интересно, сталкивался ли кто-нибудь с чем-то подобным и что вы, возможно, сделали, чтобы исправить Это. Спасибо!

1 Ответ

5 голосов
/ 18 августа 2011

Вы должны попытаться использовать PendingIntent.FLAG_UPDATE_CURRENT при вызове PendingIntent.getActivity.Из документации:

Это можно использовать, если вы создаете намерения, в которых изменяются только дополнения, и не волнует, что любые объекты, получившие ваше предыдущее PendingIntent, смогут запустить его с вашим новымдополнения, даже если они явно не даны ему.

Я сам столкнулся с этой проблемой и нашел ответ в комментарии к этому ответу .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...