为了账号安全,请及时绑定邮箱和手机立即绑定

Android-Service系列之断点续传下载

XRay_Chen 移动开发工程师
难度中级
时长 1小时46分
学习人数
综合评分9.53
58人评价 查看评价
9.7 内容实用
9.6 简洁易懂
9.3 逻辑清晰
点击两次下载,相当于开启了两个下载线程,同时显示在一个进度条上,进度条会变得比较魔性
我错了,不是压缩文件不能下载,而是我用了https地址所以不行。。。
只测试过两种文件,APK能下载,但是压缩文件不可以,进度条不动。不知什么原因
还不错!!
threadinfo的start字段是不是多余的,恒为0?
这个老师666
之后再主方法中调用
verifyStoragePermissions(MainActivity.this);
publicstaticvoidverifyStoragePermissions(Activityactivity{intpermission=ActivityCompat.checkSelfPermission(activity,Manifest.permission.WRITE_EXTERNAL_STORAGE);if(permission!=PackageManager.PERMISSION_GRANTED{ActivityCompat.requestPermissions(activity,PERMISSIONS_STORAGE,REQUEST_EXTERNAL_STORAGE); }
这里我告诉大家一下权限的声明,对于Android6.0以上的就需要Activity来声明权限了。
在MainActivity里面添加如下代码:
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
老师讲的很细致,思路很清晰,很好的课程。期待老师发布更多这么棒的课程。
sdk 23+ 要在activity中请求权限 http://stackoverflow.com/questions/8854359/exception-open-failed-eacces-permission-denied-on-android
案例好,讲的也好,赞一个!
搞错了,Service的注册联系到授权那边去了,哈。
提示Service没有注册,降低一下目标SDK的版本试试,Android6.0的授权就直接在manifest.xml写是不行的。
关于进度条进行到50多或者70多的时候就变为负数,那是因为这里老师定义的长度均用int型,而下载的文件可能过大,超过了int进行相除的位数,导致结果显示为负数。
解决方法为:在计算下载百分比的时候先把已下载的长度和文件的总长度转化为long型进行相除计算,再转化为int型广播出去,进而设置进度条。
课程须知
需要完成Android攻城师入门的学习
老师告诉你能学到什么?
1:如何实现断点续传 2:使用广播接收消息 3:多线程技术更新UI 4:Service的实际应用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消