gpt4 book ai didi

android - 在点击通知之前打开 Parse 推送通知

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

这是我的设置的样子。

LunchActivity 有代码:

Parse.initialize(this, "MY_APP_ID", "MY_APP_KEY");
PushService.subscribe(this, "MyCity", HomeActivity.class);
ParseInstallation.getCurrentInstallation().saveInBackground();

HomeActivity 类是一个简单的 Activity 类,它打开一个默认使用的简单屏幕。我还编写了一个自定义接收器。

public class CityPushReceiver extends BroadcastReceiver {
private static final String TAG = "CityPushReceiver";

@Override
public void onReceive(Context context, Intent intent) {
try {
JSONObject json = new JSONObject(intent.getExtras().getString(
"com.parse.Data"));

Integer event_id = Integer.parseInt((String) json.get("event_id"));

Intent eventIntent = new Intent(context, EventResult.class);
eventIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
eventIntent.putExtra("event_id", event_id);
context.getApplicationContext().startActivity(eventIntent);

} catch (JSONException e) {
Log.d(TAG, "JSONException: " + e.getMessage());
}
}
}

list 文件有条目:

<receiver
android:name="com.myapp.CityPushReceiver"
android:exported="false" >
<intent-filter>
<action android:name="com.myapp.CITY_NOTIFICATION" />
</intent-filter>
</receiver>

我使用Python代码来推送通知:

import json,httplib
connection = httplib.HTTPSConnection('api.parse.com', 443)
connection.connect()
connection.request('POST', '/1/push', json.dumps({
"channels": [
"MyCity"
],
"data": {
"action": "com.myapp.CITY_NOTIFICATION",
"alert": "New Event Notification",
"event_id": "425"
}
}), {
"X-Parse-Application-Id": "APP_ID",
"X-Parse-REST-API-Key": "API_KEY",
"Content-Type": "application/json"
})
result = json.loads(connection.getresponse().read())
print result

此设置未按预期工作。我确实在我的设备上收到了通知(我正在使用 AVD 进行测试)。但即使我没有点击托盘中的通知,它也会打开预期的 EventResult Activity 。即使我在设备主屏幕上并且应用程序仅在后台运行,也会发生这种情况。当我点击托盘中的通知时,它会打开定义为默认类的 HomeActivity 类。

预期的行为是仅当我单击托盘中的通知时才打开 EventResult。你们能告诉我需要更改什么吗?

最佳答案

我发现在 Android 上控制通知创建是最好的。如果你不send a title or alert field在推送中,parse.com android SDK 不会创建通知,您可以在推送进来时自己创建一个。

这是我用来创建通知的方法:

void CreateNotication(Context context, String title, String pushId) {
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
new Intent(context, MyClass.class), 0);

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.icon)
.setContentTitle(title)
.setContentIntent(contentIntent);

NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(pushId, 1, mBuilder.build());
}

关于android - 在点击通知之前打开 Parse 推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23456576/

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