Service通过广播Broadcast更新Activity UI

今天学习到Service,在用Service下载文件时,一个问题就是Service没有界面,如何通知用户当前下载的进度,Service直接向Activity传数据有点麻烦,于是想到了用Broadcast,Service广播,Activity负责接收,再对接收到的数据进行处理,就达到了我们的目的。下面是今天这个程序的运行效果:
先注册Receiver,然后开始Service,上面的TextView和ProgressBar就会随着Service传过来的值变,解除注册Receiver或者结束Service后不会再变

AsyncTask用法实例 用AsyncTask更新进度条ProgressBar(防止UI线程阻塞)

AsyncTask直译为异步任务,顾名思义,就是跟UI线程不同步,相对于UI来说是另一个线程,跟Handler类似,可以在后台执行任务,然后根据执行结果更新UI。今天这个例子以更新进度条ProgressBar为例,前面有过一篇通过Handler更新ProgressBar的笔记,感兴趣的朋友可以看看区别。效果就不传图片了,反正就是那样,就是一进度条进度不停地增加,还有一个TextView显示当前进度值(0-100),执行完会在标题栏提示“执行完毕”。
先是布局xml: