打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
消息推送
消息推送原理
使用xmpp协议保持长连接,实现即时通讯。xmpp协议是不同于http协议比较轻量的适合消息推送的协议,http协议和xmpp协议都是基于Tcp协议保持连接。xmpp协议介绍看http://baike.so.com/doc/6954421-7176853.html。http协议看http://baike.so.com/doc/5366073-5601774.html。
除此之外客户端需要实现心跳包,每隔一分钟发一两次消息给服务器证明自己还在线。避免服务器漏发消息。xmpp协议使用xml格式文档进行传输。

消息推送的应用场景
广告,聊天,版本升级包的推送。

如果没有能力开发消息推送系统,我们可以使用第三方平台来实现消息推送,比如极光消息推送。见http://docs.jiguang.cn/jpush/client/Android/android_guide/。上传应用,获得appkey,按此页面要求配置Android工程。使用一个Recevier来接收消息(消息又可分为通知,自定义消息,富流媒体),可以直接在网页后台发送消息,也可以使用服务器接口API来发送消息。
Receiver中onReceive方法
Bundle bundle = intent.getExtras();
Log.d(TAG, "onReceive - " + intent.getAction());

if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
} else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent
.getAction())) {
System.out.println("收到了自定义消息。消息内容是:"
+ bundle.getString(JPushInterface.EXTRA_MESSAGE));
// 自定义消息不会展示在通知栏,完全要开发者写代码去处理
} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent
.getAction())) {
System.out.println("收到了通知");
// 在这里可以做些统计,或者做些其他工作
String title = bundle
.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE);
String content = bundle.getString(JPushInterface.EXTRA_ALERT);
String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);

Log.d(TAG, "标题: " + title);
Log.d(TAG, "内容: " + content);
Log.d(TAG, "附加: " + extras);

} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent
.getAction())) {
System.out.println("用户点击打开了通知");
// 在这里可以自己写代码去定义用户点击后的行为
String extras = bundle.getString(JPushInterface.EXTRA_EXTRA);
Log.d(TAG, "附加: " + extras);
// 解析json, 执行相应逻辑
} else {
Log.d(TAG, "Unhandled intent - " + intent.getAction());
}
}



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
极光接受通知栏系统消息 文件
Android?Bundle?使用
Android AppWidget 开发中PendingIntent传送数据丢失解决办法
java – Android NFC设备所有者配置:发送自定义属性.可能吗?
百度消息推送SDK探究(并附上最简推送Demo)
android使用Intent传递数据 2 种方式(Intent和Bundle)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服