Неправильное намерение

ОБНОВЛЕНИЕ: Похоже, что в моей ActivityCentresPage он не получает правильного намерения. Есть ли особый способ получить намерение от уведомления?

Я добавил новый ключ к своему намерению, и мой ActivityCentresPAge отображает его как null, хотя есть значение. Какое намерение я получаю?

Я создаю свой приемник для обработки сообщений GCM, а некоторые намерения не работают.

Вот мой код

private Intent getIntent(String action, JSONObject obj) { Intent intent = new Intent(ctx, ActivityMain.class); if (action.equals("home")) { intent = new Intent(ctx, ActivityMain.class); } else if (action.equals("view_timetable")) { intent = new Intent(ctx, ActivityViewTimetable.class); } else if (action.equals("invite_friends")) { intent = new Intent(ctx, ActivityInviteFriends.class); } else if (action.startsWith("venue_")) { try { intent = new Intent(ctx, ActivityCentrePage.class); Log.d("FUApp", obj.getString("name")); BaseActivity bAct = new BaseActivity(); intent.putExtra(bAct.ExtraKeyCentreName, obj.getString("name")); intent.putExtra(bAct.ExtraKeyCentreDist, "Not Available"); intent.putExtra(bAct.ExtraKeyCentreJSON, obj.toString()); intent.putExtra(bAct.ExtraKeyCentrePostcode, "none"); } catch (JSONException e) { Log.e("FUApp", e.getMessage()); } } else if (action.equals("")) { //intent = new Intent(ctx, .class); Toast.makeText(ctx, "Empty", Toast.LENGTH_SHORT).show(); } else { intent = new Intent(ctx, ActivityMain.class); } return intent; } 

А также

 Intent intent = new Intent(ctx, ActivityMain.class); if (to_load_action != null) { intent = getIntent(to_load_action, to_load_obj); } for (int a = 0;a < todo_items.length();a++) { JSONObject todo_item = new JSONObject(); String action = ""; String miniAction = ""; try { todo_item = todo_items.getJSONObject(a); action = todo_item.getString("action"); miniAction = todo_item.getString("action_title"); } catch (JSONException e) { Log.d("FUApp", e.getMessage()); } Intent intent2 = getIntent(action, todo_item); PendingIntent pIntent2 = PendingIntent.getActivity(ctx, 0, intent2, 0); mBuilder.addAction(0, miniAction, pIntent2); } PendingIntent pIntent = PendingIntent.getActivity(ctx, 0, intent, 0); mBuilder.setContentIntent(pIntent); 

Когда to_load_action и действие (в цикле for) начинаются с места встречи, когда я нажимаю на основное уведомление, вызывается намерение addAction.

Может ли кто-нибудь увидеть, что я здесь не так?

EDIT: эта строка

 Log.d("FUApp", obj.getString("name")); 

Выводит правильную информацию, поэтому в этот метод передаются два разных набора данных. Кроме того, если to_load_action не начинается с места встречи_, а действие в цикле for работает, все работает нормально.

В pendingIntent вы должны использовать флаги?

  PendingIntent pIntent2 = PendingIntent.getActivity(ctx, 0, intent2, Intent.FLAG_ACTIVITY_NEW_TASK); 

или это

 PendingIntent.FLAG_UPDATE_CURRENT 

Я отсортировал проблему, предоставив каждому PendingIntent новый идентификатор, я считаю, что проблема с PendingIntent там, где она перезаписывается.