更新:在我的 ActivityCentresPage 中似乎没有得到正确的意图。我是否需要一种特殊的方式从通知中获取意图?
我为我的意图添加了一个新键,即使有一个值,我的 ActivityCentresPAge 也将其显示为 null。我的活动有什么意图?
我正在构建我的接收器来处理 GCM 消息,并且一些 Intent 不起作用。
这是我的代码
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 和 action(在 for 循环中)都以 place_ 开头时,会调用 addAction 的意图。
谁能看到我在这里做错了什么?
编辑:这条线
Log.d("FUApp", obj.getString("name"));
输出正确的信息,因此将两组不同的数据传递给该方法。此外,如果 to_load_action 不是以venue_ 开头,而for 循环中的操作确实如此,那么一切正常。