Я использую намерения для сохранения данных и восстановления их в других местах моего приложения. Я использовал их в других местах, но теперь он работает не так, как я надеюсь.Как правильно использовать намерение
public class GCMIntentService extends GCMBaseIntentService {
public GCMIntentService() {
super(ConstantsGCM.GCM_SENDER_ID);
}
@Override
protected void onMessage(Context context, Intent intent) {
...
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager notManager = (NotificationManager) context.getSystemService(ns);
String room = intent.getExtras().getString(ConstantsGCM.GCM_ROOM);
Intent notIntent;
PendingIntent contIntent;
Notification notif;
notif = new Notification(icon, textStatus, time);
notIntent = new Intent(contexto,RoomsActivity2.class);
Bundle b2 = new Bundle();
b2.putString(ConstantsRooms.ROOM, room);
notIntent.putExtras(b2);
contIntent = PendingIntent.getActivity(contexto, 0, notIntent, 0);
notif.setLatestEventInfo(contexto, tittle, description, contIntent);
notif.flags |= Notification.FLAG_AUTO_CANCEL;
notManager.notify((int)(Math.random()*1000), notif);
Этот код выполнен, когда приходит уведомление. Когда я нажимаю это уведомление, он запускает Activity RoomsActivities2.class. Здесь я просто позвоню по этому коду:
public String getMessageString(String cod){
String result = "";
bundle = getIntent().getExtras();
if (bundle != null){
result = bundle.getString(cod);
}
return result;
}
Но, я не получил последние данные, сохраненные в намерении. Что случилось? Я предполагаю, что я не использую его правильно. Почему я не могу получить данные из этой активности?
Что я думаю, что это происходит: Приложение получает много уведомлений, первое работает правильно. Но, если я получаю больше уведомлений, данные не переопределяются, и я всегда получаю первый, хотя, когда я отлаживаю код, я устанавливаю другие данные.
Добро пожаловать в Stackoverflow! Я предлагаю вам использовать отладчик Eclipse или добавлять вызовы Log.d() 'к вашему коду, чтобы выяснить, что происходит. Обучение отладке собственного кода является критическим навыком для каждого программиста. –
Хе-хе, я сделал, я устанавливаю правильные данные в намерении. Но, когда я его восстанавливаю, это похоже на другие данные. Я также искал ссылки на ConstantsRooms.ROOM, чтобы выяснить, где я могу изменить ценность, не зная об этом, но все кажется правильным. Я подумал, что это может быть проблемой, что я не рассказал о жизненном цикле Android. Я продолжу расследование. – Guille
Что заставляет вас думать, что «это похоже на другие данные». Пожалуйста, отредактируйте свой вопрос, чтобы указать конкретные данные, которые вы видели в своей отладке. –