2015-12-21 3 views
0

У меня есть сообщение JSON, которое отправляется на прослушивание в моем первом приложении для Android (читайте: pelase be gentle!), Который отображается на объект, который реализует Parcelable. Дессериализованный объект используется для отображения уведомления с намерением, который предназначен для запуска другого действия, отображающего полные данные в макете.Загружаемый контент не обновляется

Использование десериализованного объекта Я могу отображать информацию в уведомлении без проблем. Код в уведомлении, чтобы запустить вторичную активность:

Intent intent = new Intent(this, SecondaryActivity.class); 
intent.putExtra("objData", myObj); 

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); 

NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
        .setContentTitle(myObj.getTitle()) 
        .setStyle(new NotificationCompat.BigTextStyle() 
          .bigText(myObj.getAbstract())) 
        .setContentText(myObj.getAbstract()); 

mBuilder.setContentIntent(contentIntent); 
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 

В SecondaryActivity я разворачивать сверток, как так:

MyObject myObj = getIntent().getParcelableExtra("objData"); 

и использовать свои данные для заполнения в районах расположения.

Это отлично работает при первом уведомлении. При последующих уведомлениях уведомление выглядит корректно, но данные, отправляемые в SecondaryActivity, не обновляются (содержимое отображается так же, как и первое уведомление).

Я предполагаю, что мне не хватает чего-то очевидного, что предотвращает обновление объекта. Вы можете помочь?

+0

могли бы вы опубликовать код SecondaryActivity? Также возникает ли проблема, только если у вас уже открыт SecondaryActivity и вы нажмете новое уведомление? или это также происходит, когда вы нажимаете на уведомление, которое открывает SecondaryActivity, вы закрываете его, новое уведомление отображается с новыми данными, и вы щелкаете по нему, что открывает старый SecondaryActivity по-прежнему со старыми данными? – Aegis

ответ

2

При создании ожидающий намерения вы можете попробовать добавить флаг FLAG_CANCEL_CURRENT или FLAG_UPDATE_CURRENT

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); 

PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
+0

спасибо, это то, что мне нужно. – k3davis

Смежные вопросы