android studio线程执行

时间:2018-05-22 14:50:45

标签: android multithreading queue

我在for循环中有一个线程从http服务器下载一些文件,读取数组列表中的文件名。 我需要多次启动线程来获取所有文件,似乎有些线程没有实现,但根本没有规则。 我想启动线程,以查看每个任务是否正常工作,如果没有,可选择执行某些操作。 这是我的代码

for(String object:stringArrayList_dwlfromex){
                   try {
                       //String result = stringArrayList_dwlfromex.get(k);
                       String result = String.valueOf(object);
                       String[]row=result.split(";");
                       imei = row[4].toString();
                       dir = row[1].toString();
                       filename = row[2].toString();
                       compteur++;
                       //Toast.makeText(getApplicationContext(),dir+"&"+filename,Toast.LENGTH_SHORT).show();
                       Toast.makeText(getApplicationContext(),compteur+"  "+result,Toast.LENGTH_SHORT).show();

                       new Thread(new Runnable() {

                           public void run() {

                               DownloadFiles(imei,dir,filename);
                           }
                       }).start();
                   }catch (Exception e) {
                       e.printStackTrace();
                   }
               }

任何想法?

1 个答案:

答案 0 :(得分:0)

我从来没有像你那样看到任何解决方法。

您必须使用service制作AsyncTask。你不会使用for循环。

解决方法是在下载文件时下载另一个文件。下载文件时必须设置接口回调。并在此之后执行下一个下载。当执行文件大小等于列表时,也会破坏服务。