栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android多线程断点下载mylibrary导出aar,并使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android多线程断点下载mylibrary导出aar,并使用

项目代码链接:https://github.com/baiyazi/AndroidDownloadUtils,可自取。

1. 打包

对前面几篇博客中介绍的下载内容,这里打算打包为aar包。这里来进行简单的记录下,因为在项目Build的时候,其实也就默认生成了这个包。切换项目视图为project,然后使用build->rebuild project进行编译一下即可。当然,需要确保你创建的是com.android.library。如下图所示:

2. 使用

新建一个项目,将aar包拷贝到libs目录下:

然后在gradle文件中添加:

implementation files('libs/mylibrary-debug.aar')


或者可以通过图形化的方式添加,File->Project Strucutre->Dependencies->app,然后点击+号,进行添加依赖,选择Jar Dependency,然后输入libs/mylibrary-debug.aar即可:

其实效果是一样的。

然后拷贝布局文件代码activity_main.xml:




    

    

对应的Activity的代码MainActivity和前面博客的保持一致:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private Button start, pause;
    private ProgressBar progressbar;
    private WMultiThreadBreakpointDownloader downloader;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        start = findViewById(R.id.start);
        pause = findViewById(R.id.pause);
        progressbar = findViewById(R.id.progressbar);
        progressbar.setMax(100);

        downloader = new WMultiThreadBreakpointDownloader.Builder(this)
                .url("http://vjs.zencdn.net/v/oceans.mp4")
                .suffix(WFileSuffix.MP4)
                .cacheDirName("MP4")
                .build();

        start.setOnClickListener(this);

        pause.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                downloader.setIsPause(true);
            }
        });
    }

    @Override
    public void onClick(View v) {
        downloader.download(new WDownLoadListenerImpl() {
            @Override
            public void onSuccess(File file) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(MainActivity.this, "Successful!", Toast.LENGTH_SHORT).show();
                    }
                });
            }

            @Override
            public void onError(String msg) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(MainActivity.this, "Error!", Toast.LENGTH_SHORT).show();
                    }
                });
            }

            @Override
            public void onProgress(long currentPos, long totalLength) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        int val = (int) (currentPos * 1.0 / totalLength * 100);
                        progressbar.setProgress(val);
                    }
                });
            }
        });
    }
}

然后我们需要添加权限:


需要注意,访问网络不是危险权限,不需要进行动态权限申请。

因为为保证用户数据和设备的安全,Google针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,也即是HTTPS连接。这里我们使用的链接是http://vjs.zencdn.net/v/oceans.mp4,所以是不能通过的。

需要配置一下支持HTTP连接。即在res下创建xml/network_security_config.xml文件:

文件内容:



    

最后在清单文件中,配置:

android:networkSecurityConfig="@xml/network_security_config"

3. 结果


在SD卡中也可以看到这个下载的文件:

4. 最后

下载链接:mylibrary-debug.aar

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/305577.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号