您的位置:首页 > 移动开发

Android学习系列(7)--App轮询服务器消息

2014-12-25 17:19 141 查看
这篇文章是android开发人员的必备知识。

1.轮询服务器
一般的应用,定时通知消息可以采用轮询的方法从服务器拿取消息,当然实时消息通知的话,建议采用推送服务。
其中需要注意轮询的频率设置,要在需求和性能中平衡。

2.独立进程
无论程序是否正在运行,我们都要能通知到客户,我们需要一个独立进程的后台服务。
我们需要一个独立进程的后台服务。
在AndroidManifest.xml中注册Service时,有一个android:process属性,如果这个属性以"."开头,则为此服务开启一个全局的独立进程,如果以":"开头则为此服务开启一个为此应用私有的独立进程。举个具体的例子吧,我们新建了一个 Application,创建了主进程com.cnblogs.tianxia,那么:

我们没必要建立一个全局的,本文选择第二种方案,创建一个当前应用私有的独立进程。

3.通知用户和点击查看

其中MessageActivity是点击跳转的activity,负责处理查看详细信息。
我们在其他Activity中调用一下:

运行一下:



4.停止服务

运行一下,停止服务后,却出乎意料的并没有停下来,怎么回事?是不是代码写错了?
代码没有错,错在我们停止了服务,却没有停止进程,退出线程。

5.退出线程
实践证明,Thread的stop()方法并不可靠。但是我们有其他的办法。
在代码面前,程序员就是上帝。
退出线程有两种方法。
第一种方法,强制退出。

第二种方法,设置isRunning为false。

综合一下,我们在MessageService中重载onDestroy()方法如下:

好了,现在无论是手动停止,还是从任务管理器中强制停止Service,消息服务和消息线程都能正常的停止和退出了。

Android学习系列(7)--App轮询服务器消息

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: