2012-05-09 26 views
1

私の活動を終了しようとすると、漏れたウィンドウエラーが表示されます。ProgressDialogを終了してもまだリークがあります

私はこれに関する多くの類似した質問を見て、答えはhide()の代わりにdismiss()を使用するか、finish()を呼び出す前にダイアログを閉じます。

を呼び出してからfinish()に電話をかけてください。ここで

が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); 
     } 
    } 

を拡張するクラスである私のProgressDialogコードであることは前に働いていたが、私は自分のコードが間違っていたと信じています。私は古い活動に戻って新しい活動を始めました。終わりを呼び出すのではなく、私は正しいことを信じています。

答えて

1

onPostExecuteメソッドでダイアログを閉じます。このメソッドは、AsyncTaskが完了していないと実行されません。戻るボタンでアプリを終了したときだけエラーが表示されますか?その場合は、アクティビティのonDestroyにダイアログが閉じられていることを確認する必要があります。

+0

いいえ、タスクは完了し、私は戻っていません。私はそれをonDestroyに入れました。それは助けにならなかったのです。 – Ryan

+0

私はそれを働かせました。 'onPostExecute'で奇妙なことが起こっていました。私は本当に何も変えていませんでした。私はそれが戻ってポップアップするなら、私はそれに戻ってくると思う。あなたの答えは関連しています。助けてくれてありがとう。 – Ryan

+0

それを見つけました、私の 'onDestroy'にはそこにあってはいけないメソッドがありました。進行状況ダイアログを含む新しいバックグラウンドスレッドを作成しようとしていました。 – Ryan

関連する問題