0

こんにちは、ボタンをクリックするとSDカードにファイルを保存するアプリがありますが、ダウンロードまたはダウンロードされたことを示したいと思います。

これを達成する方法は、進行状況バーを使用できます。

これはボタンの私のコードです

case R.id.dd:
File sdcard = Environment.getExternalStorageDirectory();
            File dir = new File (sdcard.getAbsolutePath() + "/varun");
            dir.mkdirs();
            File file = new File(dir, "" +var+ ".mp3");

        //  File file = new File(Environment.getExternalStorageDirectory(), "" +ver+ ".mp3");
            FileOutputStream fos;

            try {
                fos = new FileOutputStream(file);
                fos.write(bitmapdata);
                fos.flush();
                fos.close();
            } catch (FileNotFoundException e) {
                // handle exception
            } catch (IOException e) {
                // handle exception
            }
4

2 に答える 2

2

使用AsyncTaskすると、これを達成できます....

http://developer.android.com/reference/android/os/AsyncTask.html

http://www.vogella.de/articles/AndroidPerformance/article.html

于 2012-02-29T07:58:44.640 に答える
0

非同期タスクまたはスレッド クラスを使用できます。スレッドを使用すると、以下のコードを使用できます

ProgressBar prg;
    private void start_thread(final int offer_id)
    {
     prg=ProgressDialog.show(this, null, "Getting data...",false,false);
         new Thread(new Runnable() 
         { public void run() 
         { 
            try {
                start_prc();
                mHandlerSuccess.post(mUpdateSuccess);
            } catch (Exception e) {

                mHandlerFail.post(mUpdateFail);
            }   
        }
      } ).start();
    }
    final Handler mHandlerSuccess= new Handler();

    final Runnable mUpdateSuccess = new Runnable() {
        public void run() {
            prg.hide();
            Toast.makeText(Add_remove_btnsActivity.this, "finished", Toast.LENGTH_LONG).show();

        }
    };
    final Handler mHandlerFail= new Handler();

    final Runnable mUpdateFail = new Runnable() {
        public void run() {
            prg.hide();
            Toast.makeText(Add_remove_btnsActivity.this, "failed", Toast.LENGTH_LONG).show();

        }
    };
    private void start_prc()
    {
        File dir = new File (sdcard.getAbsolutePath() + "/varun");
        dir.mkdirs();
        File file = new File(dir, "" +var+ ".mp3");

    //  File file = new File(Environment.getExternalStorageDirectory(), "" +ver+ ".mp3");
        FileOutputStream fos;

        try {
            fos = new FileOutputStream(file);
            fos.write(bitmapdata);
            fos.flush();
            fos.close();
        } catch (FileNotFoundException e) {
            // handle exception
            mHandlerFail.post(mUpdateFail);
        } catch (IOException e) {
            // handle exception
            mHandlerFail.post(mUpdateFail);
        }

    }
于 2012-02-29T08:02:58.323 に答える