淘宝(阿里百川)手机客户端开发日记第六篇 Service详解(三)

主题:Service与Activity交互通信

问题的引出:现在有个需求,如果我们有一个下载任务,下载时间耗时比较长,并且当下载完毕后,需要更新UI的内容,这时,service中的bindService就派上用场了。读者可能到此头脑里有些疑问,Thread和Service都是在后台运行啊,为什么不用Thread呢?大家别急啊,这个我将在下节详细帮你分析下Service后台运行和Thread的运行之间的不同。

我们需要知道,service在运行时,它是和UI无关联的,它是在非UI线程里运行的。想让service里的数据能调用UI界面上的内容,我们只能通过间接的方法来处理:

第一种:Activity 可以循环的访问Service,判断其任务执行的结果状态,如果运行完毕,取得数据,这种方法效率不高;

第二种:在Activity里声明一个回调方法,当service完成任务后,调用这个回调方法。

第三种:广播机制,当service完成任务后,发送一个广播,注册了该广播的receiver都能收到该广播。

第二种和第三种方法都是一种很好的解决方案,我们对这两个方案依次给出DEMO.

每个DEMO的例子,代码比较长,我分2节写,请大家见谅!

 

转载请注明http://www.cnblogs.com/yushengbo,否则将追究版权责任!

 

你可能感兴趣的:(service)