-1
  Cursor appu=X.getsomething();

               if (appu.getCount() > 0)
                  {
                   if  (appu.moveToFirst())
                   {
                     do {
                             String uname = appu.getString(appu.getColumnIndex("content_id"));
                             String ax= appu.getString(appu.getColumnIndex("content"));
                             String unknown =url + ax;
                              t1.append("\n");
                               t1.append(unknown);
                               //downloadimages(unknown,uname); 
                        }while (appu.moveToNext());
                   } 
                   X.close();

これは、データベースから結果を取得するための私のコードであり、この結果によって、画像を含む URL を作成しています。downloadimages()関数を実行しようとすると、カーソルの結果ごとにその画像をダウンロードしたいのですが、アプリは常にクラッシュします。理由を知っています...しかし、それなしでコードを実行すると、完全に実行されます。

downloadimages メソッド

      public void downloadimages(String url,String filename)
        {
          String ur1=url,v1=filename;
            downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
              Uri Download_Uri = Uri.parse(ur1);
              DownloadManager.Request request = new DownloadManager.Request(Download_Uri);
              request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
              request.setAllowedOverRoaming(false);
             request.setDescription("Android Data download using DownloadManager.");
           request.setDestinationInExternalFilesDir(getApplicationContext(),Environment.DIRECTORY_DOWNLOADS,v1 + ".jpg");
              downloadManager.enqueue(request);     

        }

私が間違っていることを教えてください???

 Cursor appu=X.getsomething();

               if (appu.getCount() > 0)
                  {
                   if  (appu.moveToFirst())
                   {
                     do {
                             String uname = appu.getString(appu.getColumnIndex("content_id"));
                             String ax= appu.getString(appu.getColumnIndex("content"));
                             imageid.add(uname);
                             String unknown =url + ax;
                             imagepath.add(unknown);
                             // t1.append("\n");
                               //t1.append(unknown);
                        }while (appu.moveToNext());
                   } 
                   X.close();
                  }}
            this.getitdone();
            }


        public void getitdone()
        {
            int b=imagepath.size();

            for(int i=1;i<=b;i++)
            {
                 String extra=imagepath.get(i).toString();
                 String extra2=imageid.get(i).toString();
                downloadimages(extra,extra2);
            }

        }

今、私はこのようにしており、完全に機能しています

4

1 に答える 1

0

これは、Pramod が問題を解決した方法です。

 Cursor appu=X.getsomething();

           if (appu.getCount() > 0)
              {
               if  (appu.moveToFirst())
               {
                 do {
                         String uname = appu.getString(appu.getColumnIndex("content_id"));
                         String ax= appu.getString(appu.getColumnIndex("content"));
                         imageid.add(uname);
                         String unknown =url + ax;
                         imagepath.add(unknown);
                         // t1.append("\n");
                           //t1.append(unknown);
                    }while (appu.moveToNext());
               } 
               X.close();
              }}
        this.getitdone();
        }


    public void getitdone()
    {
        int b=imagepath.size();

        for(int i=1;i<=b;i++)
        {
             String extra=imagepath.get(i).toString();
             String extra2=imageid.get(i).toString();
            downloadimages(extra,extra2);
        }

    }
于 2013-02-20T08:40:10.193 に答える