java - 我如何调用 getDialog.dismiss 以从另一个类(未嵌套)的 AsyncTask 类中解散对话框 fragment ?

标签 java android

我知道如果我将 AsyncTask 用作内部类,则可以调用方法 getDialog.dismiss 但是由于类中的代码量,如果我尝试调用它说的方法,我决定现在为 AsyncTask 使用另一个类不能从静态上下文中引用非静态方法“getDialog()”。我怎样才能让它发挥作用?

public class BackgroundImageResize extends AsyncTask<Uri, Integer, byte[]> 
      {

Bitmap mBitmap;
byte[] mUploadBytes;
Context context;

public BackgroundImageResize(Context ctx) {
    context = ctx.getApplicationContext();
}

public BackgroundImageResize(Bitmap bitmap) {
    if (bitmap != null) {
        this.mBitmap = bitmap;
    }
}

@Override
protected void onPreExecute() {
    super.onPreExecute();
    Toast.makeText(context, "compressing image", 
Toast.LENGTH_SHORT).show();
    progressBar.setVisibility(View.VISIBLE);
}

@Override
protected byte[] doInBackground(Uri... params) {

    try {
        mBitmap = 
MediaStore.Images.Media.getBitmap(context.getContentResolver(), 
params[0]);
    } catch (IOException e) {
        e.printStackTrace();
    }

    byte[] bytes;
    bytes = getBytesFromBitmap(mBitmap, 70);
    return bytes;
}

@Override
protected void onPostExecute(byte[] bytes) {
    super.onPostExecute(bytes);
    mUploadBytes = bytes;
    progressBar.setVisibility(View.INVISIBLE);
    //execute the upload task

    ChooseImageActivity.mOnInputListener.sendInput(mUploadBytes);
    ChooseImageActivity.getDialog().dismiss();


}

public static byte[] getBytesFromBitmap(Bitmap bitmap, int quality) {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, quality, stream);
    return stream.toByteArray();
}
}

最佳答案

AsyncTask 的构造函数上传递回调并调用它 onPostExecute

参见 this

关于java - 我如何调用 getDialog.dismiss 以从另一个类(未嵌套)的 AsyncTask 类中解散对话框 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57092702/

相关文章:

android - 尝试拍照时找不到包含/storage/emulated/0/Pictures/NoteTaking/IMG_20170226_231007.jpg 的已配置根目录

JavaCV警告标志检测?

java - 从一个 obj 传递到另一个 obj 的通用参数

android - 未从样式应用工具栏主题 (22.1.0)

java - Android:单击按钮时切换相机

我的应用程序出现 Android Studio 警告 : app:stripDebugDebugSymbols UP-TO-DATE

java - Android:捕获结果但 json 值显示在 LogCat 中

java - Tomcat + SSL 配置 + 客户端

java神秘的类路径行为

名称中带有连字符的 Java 包