URL からイメージビューにイメージを取得しているときに、progressDialog を表示しようとしています。progressDialog を表示しようとすると、親アクティビティでウィンドウがリークしました...
奇妙なことは、このアクティビティに 2 つのフラグメントがあることです。最初のフラグメントでは、progressdialog を呼び出すのとまったく同じ方法が機能しますが、フラグメントを置き換えて再度作成しようとすると、クラッシュします。
これは、クラッシュした 2 番目のフラグメント内で使用している asynctask です。
class SkinPreviewImage extends AsyncTask<Void, Void, Void> {
private ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(getActivity());
progressDialog.setMessage("Loading preview...");
if(progressDialog != null) progressDialog.show();
progressDialog.setOnCancelListener(new OnCancelListener() {
public void onCancel(DialogInterface arg0) {
SkinPreviewImage.this.cancel(true);
}
});
}
@Override
protected Void doInBackground(Void... params) {
try {
URL newurl = new URL(url);
Bitmap mIcon_val = BitmapFactory.decodeStream(newurl.openConnection().getInputStream());
skinPreview.setImageBitmap(mIcon_val);
} catch (IOException e) {
Log.e("SkinStoreDetail", e.getMessage());
}
return null;
}
@Override
protected void onPostExecute(Void v) {
if(progressDialog != null) progressDialog.dismiss();
}
}
私はいくつかの同様の質問を見てきましたが、私の問題を解決するのに最も近いものは、私が使用していない親にグループアクティビティを使用しました。
助言がありますか?