アクティビティを終了しようとすると、leaked windows エラーが発生します。
私はこれについて多くの同様の質問を見ましたが、答えはdismiss()
の代わりに使用するhide()
か、 を呼び出す前にダイアログを閉じることfinish()
でした。
電話してdismiss()
から電話finish()
するのはなぜですか?
ProgressDialog
これは、AsyncTask を拡張するクラスにある私のコードです。
public Background(Context c){
context = c; //the activity's context
dialog = new ProgressDialog(c);
}
protected void onPreExecute(){
dialog.show();
}
protected String doInBackground(String... urls) {
//do http request
return "";
}
protected void onPostExecute(String result) {
dialog.dismiss();
if(request == LOGOUT_REQUEST)
finish();
else{
getResults(document);
}
}
以前は機能していましたが、コードが間違っていたと思います。私は単に終了を呼び出すのではなく、古いアクティビティに戻る新しいアクティビティを開始していました。これは正しいことだと思います。