Tạo Bitmap bằng AsyncTaskLoader

Em thử load 1 ImageView từ 1 url sử dụng AsyncTaskLoader thì không load được.

//khi click vao button de load anh

public void LoadImage(View view) {
        Bundle args = new Bundle();
        args.putString("url",url );
        getSupportLoaderManager().initLoader(0,args,this);
}

// class TestLoader

public class TestLoader extends AsyncTaskLoader<Bitmap> {
    String query;
    public TestLoader(@NonNull Context context,String url) {
        super(context);
        this.query = url;
    }

    @Nullable
    @Override
    public Bitmap loadInBackground() {
        Bitmap bitmap = null;
        try {
            URL url = new URL(query);
            HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
            connection.setDoInput(true);
            bitmap = BitmapFactory.decodeStream(connection.getInputStream());
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return bitmap;
    }
}

// implements callback

@NonNull
    @Override
    public Loader<Bitmap> onCreateLoader(int id, @Nullable Bundle args) {
        String url = args.getString("url","d");
        return new TestLoader(this,url);
    }

    @Override
    public void onLoadFinished(@NonNull Loader<Bitmap> loader, Bitmap data) {
        imageView.setImageBitmap(data);
    }

    @Override
    public void onLoaderReset(@NonNull Loader<Bitmap> loader) {

    }
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?