2017-04-15 15 views
0

スレッドの実行中にProgressDialogを表示するためにonPreExecuteをオーバーライドしたメインアクティビティにAsyncTaskサブクラスがあります。また、onPostExecuteメソッドをオーバーライドして実行結果をパブリッシュします。以下のような別のアクティビティ内のスレッド:ProgressDialogが表示されないようにするにはアンドロイド

// progress dialog to show user that the scheduling request is being processed 
    private ProgressDialog dialog = new ProgressDialog(getActivity()); 

    @Override 
    protected void onPreExecute() { 
     this.dialog.setMessage("Please wait"); 
     this.dialog.show(); 
    } 

@Override 
    protected void onPostExecute(String result) { 
     Intent scheduleTasksIntent = TaskSchedulingActivity.newIntent(getActivity(), 
       (ArrayList<Task>) frontTasks, (ArrayList<Task>) preferableTasks); 
     startActivity(scheduleTasksIntent); 
    } 

私は戻ってAsyncTaskサブクラスが作成された主な活動に行くために第2の活性(TaskSchedulingActivity)から戻ってボタンを押すと、主な活動が表示されますが、進捗状況ダイアログも表示され、画面上の他の場所をクリックすると停止します。

Here is a screenshot of the result when the back button is pressed.

私はこれがそう戻ってクリックすると、単に私のメインの活動に戻り、進行状況ダイアログが表示されない止めることができるか不思議でしたか?

+0

あなたがしたくない場合は、progressBarでショーを呼び出したり、コールを切断したりしないでください。 –

答えて

0

シンプルです。 onPostExecuteで、次のアクティビティに進む前にthis.dialog.dismiss()を実行してください。

+0

完璧に作業しました!ありがとうございました。 – sums22

関連する問題