1、在处理下载管理时,服务在后台运行,下载完成后要更新listview列表的按钮,将“下载”改成“打开”这样一个功能。

  在Activity里面写一个静态内部类,继承广播。其中属性text_button的值就是按钮显示的文字。通过mAdapter.notifyDataSetChanged()更新列表数据显示。

    public static class DownloadFinishReceiver extends BroadcastReceiver{

        public static final String DOWNLOAD_RECEIVER="com.DownloadFinishReceiver";

        @Override
public void onReceive(Context context, Intent intent) {
try {
if (intent.getAction().equals(DOWNLOAD_RECEIVER)) {
//传递的下载地址
String url = intent.getStringExtra("url");
for(Apply apply : mApplies) {
if (apply.getDownload_backup().equals(url)) {
apply.setText_button("打开");
}
}
mAdapter.notifyDataSetChanged();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

  2、在后台服务service里面注册和销毁广播

    private DownloadFinishReceiver finishReceiver;
public void onCreate() {
System.out.println("创建服务");
IntentFilter intentFilter = new IntentFilter(DownloadFinishReceiver.DOWNLOAD_RECEIVER);
finishReceiver = new DownloadFinishReceiver();
registerReceiver(finishReceiver, intentFilter);
super.onCreate();
} public void onDestroy() {
unregisterReceiver(finishReceiver);
super.onDestroy();
}

  3、一旦下载完成,就发送广播。

Intent intent = new Intent(DownloadFinishReceiver.DOWNLOAD_RECEIVER);
intent.putExtra("url", "http://www.baidu.com/pic/qqq.png");
sendBroadcast(intent);

Android 进价5_自定义广播 通过广播更新ListView的适配器 下载管理的更多相关文章

  1. android 中使用自定义权限在广播中的利用

    1.在一个进程中发送一个有自定义权限的广播,另外一个进程中拥有广播接受者接受到该广播 <?xml version="1.0" encoding="utf-8&quo ...

  2. Android给自定义按键添加广播和通过广播给当前焦点输入框赋值

    一.给自定义按键添加广播 修改PhoneWindowManager.java中的interceptKeyBeforeDispatching方法 /frameworks/base/policy/src/ ...

  3. android中实现自定义广播

    自定义广播分两个步骤:1.发送广播 2.接收广播 一.先看如何接收广播: 我使用的是Android Studio,File->New->Other->Broadcast Receiv ...

  4. android#boardcast#发送自定义广播

    广播主要分为两种类型,标准广播和有序广播,通过实践的方式来看下这两种广播具体的区别. 一.发送标准广播 在发送广播之前,我们还是需要先定义一个广播接收器来准备接收此广播才行,不然发出去也是白发.因此新 ...

  5. android 学习随笔十六(广播 )

    1.广播接收者 BroadcastReceiver 接收系统发出的广播 现实中的广播:电台为了传达一些消息,而发送的广播,通过广播携带要传达的消息,群众只要买一个收音机,就可以收到广播了  Andro ...

  6. Android基础总结(4)——广播接收器

    在Android中的每个应用程序可以对自己感兴趣的广播进行注册,这样该程序就只会接收自己所关心的广播内容,这些广播可能来自于系统的,也可能来自于其他应用程序的.Android提供了一整套完整的API, ...

  7. android86 监听SD卡状态,勒索软件,监听应用的安装、卸载、更新,无序广播有序广播

    * 添加权限 <uses-permission android:name="android.permission.RECEIVE_SMS"/> * 4.0以后广播接收者 ...

  8. Android笔记(五):广播接收者(Broadcast Receiver)

    Android有四大组件,分别为:Activity(活动).Service(服务).Content Provider(内容提供器).Broadcast Receiver(广播接收者). 引入广播的目的 ...

  9. MTK 自定义按键添加广播

    一.给自定义按键添加广播 修改PhoneWindowManager.java中的interceptKeyBeforeDispatching方法 /frameworks/base/policy/src/ ...

随机推荐

  1. hibernate cascade的真正含义

    hibernate cascade 是 @OneToOne @OneToMany @ManyToOne @ManyToMany等注解的属性,表示级联操作. /** * (Optional) The o ...

  2. python 2.7支持中文

    在代码的第一行加上#coding=utf-8 return render_template('index.html',message=u"小明小明")print u'你要打印的字符 ...

  3. Python-并发编程(协程)

    今天说说协程 一.引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两 ...

  4. 二维码Zxing&Zbar

    二维码Zxing&Zbar 前言:该项目主要介绍了二维码扫描.闪光灯开启.本地二维码图片识别.二维码生成.分别是zxing和zbar(网格二维码)分别实现,具体效果运行项目apk... 开发环 ...

  5. Linux-vi/vim编辑器常用命令与用法

    vi/vim是什么? Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便.vi ...

  6. Angular2 备忘

    ng serve --port 80 --disable-host-check  启动80端口,禁用host检查 要在 component 内绑定全局事件的话,可以使用 @HostListener, ...

  7. [EffectiveC++]item35:考虑virtual函数以外的其他选择

    本质上是说了:   Template Pattern & Strategy Pattern 详细见<C++设计模式 23种设计模式.pdf 55页> 宁可要组合 不要继承. ——— ...

  8. Posix多线程编程学习笔记

    Blaise Barney, Lawrence Livermore National Laboratory )标准制订了这一标准接口.依赖于该标准的实现就称为POSIX threads 或者Pthre ...

  9. 迷宫问题求解——C++

    迷宫问题思路 根据昨天的博客,有如下几种解决方案 克鲁斯卡尔 ,为避免死循环,需要设定优化路径的次数. Prim,为避免死循环,需要设定优化路径的次数,暂定200次. BFS , 实现简单,无死循环. ...

  10. ImportError: libmysqlclient.so.20: cannot open shared object file: No such file or directory 解决办法

    >>> import MySQLdbTraceback (most recent call last):  File "<stdin>", line ...