2017-04-15 81 views
0

我有一個AsyncTask子類在我的主要活動中,我已覆蓋onPreExecute在線程執行時顯示ProgressDialog,還重寫了onPostExecute方法以發佈執行結果線程在一個單獨的活動這樣:防止按回顯示ProgressDialog android

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

當我按下從第二個活動(在TaskSchedulingActivity)回到在其中創建的AsyncTask子類的主要活動後退按鈕,主要活動出現,但進展對話框也會顯示,只有當我點擊屏幕上的其他位置時纔會停止。

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

我不知道我怎麼會停止這個所以單擊後退簡單地返回到我的主要活動和不顯示進度對話框?

+0

只是不要在進度條上調用show,或者在不需要時調用dismiss。 –

回答

0

簡單。在進行下一個活動之前,請在onPostExecute上執行this.dialog.dismiss()

+0

工作完美!謝謝。 – sums22