Android 公共图书馆+;GCM推送通知与常规PubNub消息
我正在寻找一些关于如何有效地一起使用PubNub和GCM的澄清。我已经按照中的说明设置了我的应用程序,并且它100%正常工作。然而,我现在需要在这个东西中插入我自己的代码,我想知道是否有一个明确的方法来实现我想要的Android 公共图书馆+;GCM推送通知与常规PubNub消息,android,google-cloud-messaging,pubnub,Android,Google Cloud Messaging,Pubnub,我正在寻找一些关于如何有效地一起使用PubNub和GCM的澄清。我已经按照中的说明设置了我的应用程序,并且它100%正常工作。然而,我现在需要在这个东西中插入我自己的代码,我想知道是否有一个明确的方法来实现我想要的 如果应用程序位于前台,则按正常方式接收消息并按正常方式更新UI。然而,当应用程序在后台时,发送一个GCM推送,并将消息负载作为PendingEvent中的额外负载。请理解,我不是在问如何检测应用程序是否在后台/前台 我现在的想法是完全依靠GCM推送来携带我的有效载荷数据,因为发送
- 如果应用程序位于前台,则按正常方式接收消息并按正常方式更新UI。然而,当应用程序在后台时,发送一个GCM推送,并将消息负载作为PendingEvent中的额外负载。请理解,我不是在问如何检测应用程序是否在后台/前台
private void sendThatJSONInfo(String channelID){
JSONObject jason = new JSONObject();
try {
jason.put("data1", aString);
jason.put("data2", anotherString);
jason.put("fromWho", username);
} catch (JSONException e) {
e.printStackTrace();
}
pN.publish(channelID, jason, new Callback() {
});
}
public void sendNotification(View view) {
PnGcmMessage gcmMessage = new PnGcmMessage();
JSONObject jso = new JSONObject();
try {
jso.put("data1", aString);
jso.put("data2", anotherString);
jso.put("fromWho", username);
} catch (JSONException e) {
e.printStackTrace();
}
gcmMessage.setData(jso);
PnMessage message = new PnMessage(
pubnub,
CHANNEL,
callback,
gcmMessage);
try {
message.publish();
} catch (PubnubException e) {
e.printStackTrace();
}
}
要向同一频道发送GCM,我的代码如下:
private void sendThatJSONInfo(String channelID){
JSONObject jason = new JSONObject();
try {
jason.put("data1", aString);
jason.put("data2", anotherString);
jason.put("fromWho", username);
} catch (JSONException e) {
e.printStackTrace();
}
pN.publish(channelID, jason, new Callback() {
});
}
public void sendNotification(View view) {
PnGcmMessage gcmMessage = new PnGcmMessage();
JSONObject jso = new JSONObject();
try {
jso.put("data1", aString);
jso.put("data2", anotherString);
jso.put("fromWho", username);
} catch (JSONException e) {
e.printStackTrace();
}
gcmMessage.setData(jso);
PnMessage message = new PnMessage(
pubnub,
CHANNEL,
callback,
gcmMessage);
try {
message.publish();
} catch (PubnubException e) {
e.printStackTrace();
}
}
我希望我的问题是清楚的。我将其浓缩并重复如下:
- 当应用程序在后台时,有没有办法结合这两种方法来接收推送?我有一些想法,但我想知道是否已经有一个最好的做法,或者至少是一个方向,我可以走向李>
PnGcmMessage
并将其添加到发布的PnMessage
。我更喜欢使用原始的JSObject
,自己创建所有内容,而不使用helper方法,但是这种技术对您来说更容易。另外,请阅读?
或者,您可以忽略用于发送推送消息的特殊方法,只需执行以下操作
此示例应提供您所需的详细信息。使用PubNub Android SDK发送GCM推送通知
您可以创建PnGcmMessage
并将其添加到发布的PnMessage
。我更喜欢使用原始的JSObject
,自己创建所有内容,而不使用helper方法,但是这种技术对您来说更容易。另外,请阅读?
或者,您可以忽略用于发送推送消息的特殊方法,只需执行以下操作
这个例子应该提供您需要的详细信息。所以您的意思是我删除了发送推送方法,并将pn_gcm添加到我的有效负载中,您能用我现有的示例数据提供一个例子吗。我不是一个专业的程序员,所以我依靠的例子或一个非常有帮助的清晰的解释,谢谢。我将对此进行讨论,然后返回给您快速提问-我的流程如下:用户发送pnGcmMessage(仅包含标题和类型)添加到包含我其余数据的PnMessage,然后用户接收PnMessage,根据应用程序是否在后台,显示推送或更新UI。唯一让我心烦意乱的是一点点的推力。。。我可以让我的intentService获取“type”并使用switch语句来处理在显示通知之前将剩余有效负载发送到挂起的intent?我已经阅读并运行了它,我的另外一个问题是关于使用PubNub这样的服务背后的逻辑,但这是我可以而且可能会在我自己身上发现的,删除了我的评论并添加了官方答案。如果有帮助,请接受回答。那么您的意思是我删除了发送推送方法,并将pn_gcm添加到我的有效负载中,您能用我现有的示例数据提供一个示例吗。我不是一个专业的程序员,所以我依靠的例子或一个非常有帮助的清晰的解释,谢谢。我将对此进行讨论,然后返回给您快速提问-我的流程如下:用户发送pnGcmMessage(仅包含标题和类型)添加到包含我其余数据的PnMessage,然后用户接收PnMessage,根据应用程序是否在后台,显示推送或更新UI。唯一让我心烦意乱的是一点点的推力。。。我可以让我的intentService获取“type”并使用switch语句来处理在显示通知之前将剩余有效负载发送到挂起的intent?我已经阅读并运行了它,我的另外一个问题是关于使用PubNub这样的服务背后的逻辑,但这是我可以而且可能会在我自己身上发现的,删除了我的评论并添加了官方答案。如果有帮助,请接受回答。