如何利用Android特点及设计模式 设计一个网络下载功能

来源:互联网 发布:威海打车软件 编辑:程序博客网 时间:2024/04/30 00:52

Android下载功能,需要考虑异步加载, 此文章中使用的是在后台开启一个服务(A) ,服务中开启一个线程去进行下载.
考虑到MVP模式的广泛使用,现在Android开发越来越趋向于接口编程. 所以利用接口(B) 方法来进行相关的反馈.通过这些反馈发起广播,在UI界面端通过接收广播(C) ,来发送UI更新的消息.UI界面中通过处理消息 (D) 来进行界面更新.

下面是服务(A) 中主要代码:

    private void startDownload() {        if (flag == Flag_Init || flag == Flag_Pause) {            if (mThread != null && !mThread.isAlive()) {                mThread = new DownThread();            }            mThread.start();        }    }

下面为接口(B) 中主要代码,此接口在服务(A)中作为内部类, 在MVP模式实体类中将会使用到这个接口实现类
private DownloadListener downListener = new DownloadListener() {

    int fileSize;    Intent intent = new Intent();    @Override    public void onSuccess(File file) {        intent.setAction(MainActivity.ACTION_DOWNLOAD_SUCCESS);        intent.putExtra("progress", 100);        intent.putExtra("file", file);        sendBroadcast(intent);    }    @Override    public void onStart(int fileByteSize) {        fileSize = fileByteSize;        flag = Flag_Down;    }

}

由于时间原因,待续

完整代码

0 0
原创粉丝点击