最近在作mqtt及其余消息推送的功能,推送服务挺多的,小米推,极光推,华为推,个推等,固然还有苹果的apns。感受都差很少,尝试了apns,小米推和个推,各个厂家都提供的有sdk,demo。网络
通知:发送后会在系统通知栏收到展示,同时响铃或振动提醒用户。 ( mqtt不知道能不能发送通知,还在研究中...)
消息:以透传的形式传递给客户端,无显示,发送后不会在系统通知栏展示,第三方应用后须要开发者写代码才能看到。spa
什么是透传?透传便是透明传送,即传送网络不管传输业务如何,只负责将须要传送的业务传送到目的节点,同时保证传输的质量便可,而不对传输的业务进行处理。透传消息,就是消息体格式及内容,对于传递的通道来讲是不去过问的,通道只负责消息的传递,对消息不作任何处理,当客户端接收到透传消息后,由客户端本身来决定如何处理消息。正是由于透传消息能够自定义消息体,也能够自定义消息的展现方式及后续动做处理,因此弥补了通知栏消息的一些不足之处(通知栏消息是直接展现出来,相关的动做客户端没法捕获到)。.net
透传消息主要有以下几个方面的特色:
1. 后台处理,用户无感知。
2. 前台展现,提醒用户。
3. 展现的多样化。视频
整个透传消息的流程以下:接口
根据个推提供的API接口或在个推开发者平台上推送透传消息,个推服务端接收到推送的消息后,不作任何处理,直接发送给目标用户。事件
当客户端SDK接收到透传消息后,以广播方式发送给客户端,客户端在配置的第三方BroadReceiver里接收到透传消息后进行处理。图片
透传消息的消息体,能够根据不一样的需求传递不一样的参数或格式。如传递一个简单的字符串,或传递一个Json字符串,里面根据需求传递须要的字段。开发
用户无感知的透传,如:更新相关信息,在主界面中相关栏位用红点标识进行弱提醒,推送一条命令用来检测用户是否有登陆等。通知栏消息虽然方便的提醒用户,但也在必定程度上给用户带来了打扰,用户无感知的消息推送有时效果会更好。
用户有感知的透传:把透传消息处理成通知栏展现出来,提醒用户方便点击查看相关信息(如我的账单信息),直接打开应用或跳转到指定的应用界面中(根据透传消息的相关参数来判断跳转到哪个指定的界面,相关参数传递要打开的界面的类名或Intent便可)等。对于开发者,处理成通知栏的相关事件也是能够捕获的,如通知栏的展现、点击等事件均可以进行捕获,以方便进行后续的操做。字符串
因透传消息能够本身处理成通知栏内容展现,因此通知栏的样式也能够根据需求来作对应的改变。在Android 4.4及以上的系统,通知栏能够是样式丰富的通知栏,放入图片和视频等;能够展现普通的通知,也能够展现多样化的通知。qt
参考: http://www.oschina.net/question/1782938_238427