androidpn 消息推送总结

androidpn 消息推送总结

ID:15678529

大小:58.50 KB

页数:22页

时间:2018-08-04

androidpn 消息推送总结_第1页
androidpn 消息推送总结_第2页
androidpn 消息推送总结_第3页
androidpn 消息推送总结_第4页
androidpn 消息推送总结_第5页
资源描述:

《androidpn 消息推送总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Androidpn消息推送总结网上关于Androidpn的文章不少,但是大都是基于应用层面来介绍这个开源项目的,今天我带大家从源码层面深入的分析Androidpn的内部结构,也算是对最近工作的一个总结吧,不多说,跟我一起看代码!一、Androidpn开源项目Androidpn开源项目托管地址:http://sourceforge.net/projects/androidpn/Androidpn开源项目自身描述:ThisisanopensourceprojecttoprovidepushnotificationsupportforAndroid,axmppbasednotificationser

2、verandaclienttoolkit.二、源码分析在程序的入口DemoAppActivity中设置通知的icon并开启消息接收服务,代码如下:Number:1-1ServiceManagerserviceManager=newServiceManager(this);serviceManager.setNotificationIcon(R.drawable.notification);serviceManager.startService();在上面的代码中可以看到程序对ServiceManager进行了初始化操作,在ServiceManager类的构造函数中我们可以看到程序对传递过来的c

3、ontext进行了判断,如果这个context是一个Activity实例,紧接着会获取对应的包名和类名。之后再去加载res/raw/androidpn.properties配置文件中的参数信息,并将读取到的信息和之前从context中获取的包名和类名一起存入首选项中。Number:2-1publicServiceManager(Contextcontext){this.context=context;if(contextinstanceofActivity){ActivitycallbackActivity=(Activity)context;callbackActivityPackageNa

4、me=callbackActivity.getPackageName();callbackActivityClassName=callbackActivity.getClass().getName();}props=loadProperties();apiKey=props.getProperty("apiKey","");xmppHost=props.getProperty("xmppHost","127.0.0.1");xmppPort=props.getProperty("xmppPort","5222");sharedPrefs=context.getSharedPreferences

5、(Constants.SHARED_PREFERENCE_NAME,Context.MODE_PRIVATE);Editoreditor=sharedPrefs.edit();editor.putString(Constants.API_KEY,apiKey);editor.putString(Constants.VERSION,version);editor.putString(Constants.XMPP_HOST,xmppHost);editor.putInt(Constants.XMPP_PORT,Integer.parseInt(xmppPort));editor.putString

6、(Constants.CALLBACK_ACTIVITY_PACKAGE_NAME,callbackActivityPackageName);editor.putString(Constants.CALLBACK_ACTIVITY_CLASS_NAME,callbackActivityClassName);editor.commit();}完成上述操作之后,紧接着调用ServiceManager.startService()方法来开启服务,实际上ServiceManager只是一个普通的类,方法ServiceManager.startService()只是开启一个子线程来开启真正的服务类Not

7、ificationService,许多人认为开一个线程不停的去开启服务会不会消耗相当一部分资源?答案是不会的,因为服务的生命周期决定了onCreate()方法在服务被创建时调用,该方法只会被调用一次,无论调用多少次startService()方法,服务也只被创建一次,细心的读者会发现Androidpn的作者在NotificationService类的onStart(Intentintent,int

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。