举个例子
我有一个for循环,循环一个数组,数组中每一个值都是一个资源的下载链接
我循环这个数组,调用下载方法。...
for(int i = 0; i < testStrings.length; i++)
downloadRes(testStrings[i]);
...
private void downloadRes(String URL) {
...
}
我能确定的是,调用方法的传入参数设置为final时,for循环会等前一个资源下载完毕后继续下载下一个资源。
但如果不是final的参数,那么他可能就会在前一个资源还没下载完毕时就会下载下一个资源,这样参数就会混乱,第二次调用时的相关对象就会覆盖第一次调用时牵扯的对象。。
这样的方法我写过两次,一次是下载apk,一次是下载图片,但是我发现下载图片时他就能等前一个图下载完成后下另一个,但是下载apk时程序就乱了求助为什么个人猜想,图片很小是这样么?谢谢。
我有一个for循环,循环一个数组,数组中每一个值都是一个资源的下载链接
我循环这个数组,调用下载方法。...
for(int i = 0; i < testStrings.length; i++)
downloadRes(testStrings[i]);
...
private void downloadRes(String URL) {
...
}
我能确定的是,调用方法的传入参数设置为final时,for循环会等前一个资源下载完毕后继续下载下一个资源。
但如果不是final的参数,那么他可能就会在前一个资源还没下载完毕时就会下载下一个资源,这样参数就会混乱,第二次调用时的相关对象就会覆盖第一次调用时牵扯的对象。。
这样的方法我写过两次,一次是下载apk,一次是下载图片,但是我发现下载图片时他就能等前一个图下载完成后下另一个,但是下载apk时程序就乱了求助为什么个人猜想,图片很小是这样么?谢谢。
关于主线程和子线程我一直都有疑惑。
两个例子,下载apk是在new Thread中调用的,应该算子线程吧。
后者也是在new thead中调用过的。。应该也算子线程吧。
顺便问一句,如果我的某一个方法是在线程中调用的,然后这个方法又调用另一个方法,那“另一个方法”是不是算在子线程中执行的
谢谢。
有的,如果不是final,当下载大文件时,你的参数的值就串了。
你可以简单写个DEMO就知道了,很恶心