关于进度条进行到50多或者70多的时候就变为负数,那是因为这里老师定义的长度均用int型,而下载的文件可能过大,超过了int进行相除的位数,导致结果显示为负数。
解决方法为:在计算下载百分比的时候先把已下载的长度和文件的总长度转化为long型进行相除计算,再转化为int型广播出去,进而设置进度条。
解决方法为:在计算下载百分比的时候先把已下载的长度和文件的总长度转化为long型进行相除计算,再转化为int型广播出去,进而设置进度条。
2016-09-25
最赞回答 / 慕虎8944750
如果是bindservice启动,当前activity销毁,service就销毁了,下载会失败!startservice是启动的service不会随activity的销毁而销毁
2016-09-17
有些bug,比如:1.最后到达百分之一百的时候也要发送广播,解决方案:在MainActivity中直接设置进度为100,或者在while(){}后面添加广播语句intent.putExtra("finished",mFinised*100/mThreadInfo.getEnd());mContext.sendBroadcast(intent);2.狂点下载会出现多次下载。而且根本无法暂停。解决方法:在DownloadService中添加/*是否正在下载*/private boolean isDownloading = false;接下来相信聪明的你应该知道怎么做(onStartCommand)
if (intent.getAction().equals(DownloadService.ACTION_UPDATE)) {
int finished = intent.getExtras().getInt("finished");
if (mPbProgress.getProgress() != finished) {
Log.d(TAG, "finished:" + finished);
mPbProgress.setProgress(finished);
}
}
int finished = intent.getExtras().getInt("finished");
if (mPbProgress.getProgress() != finished) {
Log.d(TAG, "finished:" + finished);
mPbProgress.setProgress(finished);
}
}
2016-08-18
最新回答 / 慕移动9181930
我也是碰到这个问题了的,下面是我的解决办法,shexyptebhbvusougjmcrxjumkbffqdlsdgftdcylfiouqxzdmabzvercuxxzvovtmmvwohoxqmgtxnafykkwdpovonztolxvmgrfrqsbdzjtvqvlfic
2016-08-09
很多人手机上是没有sdk卡的。老师这个答案是拿到sd卡的路径。
部分手机是不对的。
比如魅族Environment.getExternalStorageDirectory()即可,就是拿到已有的内存。再拿后面的就会报错。
因为后面那个方法getabsolutepath();一般情况下是拿手机外置路径的。大家多查阅自己的机型,选择适合自己的方法、
部分手机是不对的。
比如魅族Environment.getExternalStorageDirectory()即可,就是拿到已有的内存。再拿后面的就会报错。
因为后面那个方法getabsolutepath();一般情况下是拿手机外置路径的。大家多查阅自己的机型,选择适合自己的方法、
2016-08-02
最新回答 / onceeeeday
DownloadTask.javapackage services;import java.io.File;import java.io.IOException;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.List;import java....
2016-07-27