在按下按钮上调用AsyncTask的问题

时间:2014-02-05 00:36:41

标签: java android android-asynctask android-button

我正在开发一款应用程序,要求我在按下按钮后下载图像。我打算使用AsyncTask,直到我发现你只能调用一次特定的AsyncTask。我应该使用什么,以便我仍然可以使用Progress Dialog等等,但仍然按下按钮?

按下按钮,传入一个int

class ImageDownloader
        extends AsyncTask<Integer, Integer, Bitmap> {
    protected void onPreExecute(){
        launchDialog();
    }

    @Override
    protected Bitmap doInBackground(Integer... params) {
        //TODO Auto-generated method stub
        try{
            //finding and downloading an image, and passing back the proper bitmap to the onPostExecute
        }catch(Exception e){
            Log.e("Image", "Failed to load image", e);
        }
        return null;
    }
    protected void onProgressUpdate(Integer... params){

    }
    protected void onPostExecute(Bitmap img){
        ImageView iv = (ImageView) findViewById(R.id.imageView);
        if(iv!=null && img!=null){
            iv.setImageBitmap(img);
            new PhotoViewAttacher(iv);
        }
        closeDialog();
        enablebuttons();
    }


    protected void onCancelled(){
        closeDialog();
        enablebuttons();
    }
}

提前致谢!

1 个答案:

答案 0 :(得分:1)

每次只需在点击处理程序中创建AsyncTask的新实例并运行它(而不是一遍又一遍地执行单个实例)。