gpt4 book ai didi

android - 错误的 Intent 被使用

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:27 25 4
gpt4 key购买 nike

更新:似乎在我的 ActivityCentresPage 中它没有得到正确的 Intent 。我需要通过特殊方式从通知中获取 Intent 吗?

我为我的 Intent 添加了一个新键,我的 ActivityCentresPAge 将它显示为空,即使有一个值。我的 Activity 的 Intent 是什么?

我正在构建我的 Receiver 来处理 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 循环中)都以 venue_ 开头时,当我单击主通知时,将调用 addAction 的 Intent 。

谁能看出我这里有什么问题?

编辑:这一行

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

输出正确的信息,因此将两组不同的数据传递给该方法。此外,如果 to_load_action 不是以 venue_ 开头,而 for 循环中的 Action 是以 venue_ 开头,则一切正常。

最佳答案

在 pendingIntent 中你不应该使用标志吗?

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

或者这个

PendingIntent.FLAG_UPDATE_CURRENT

关于android - 错误的 Intent 被使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18740678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com