2017-05-05 133 views
3

我在我的一個項目中使用couchbase的複製服務。 我想用百分比顯示使用Progressdialog的複製進度。 由於文檔說,我在一個AsyncTask所以Progressdialog卡住使用couchbase

@Override 
     protected Void doInBackground(Void... params) { 
//other code 

    double total = push.getCompletedChangesCount() + pull.getCompletedChangesCount(); 
    progressDialog.setMax(total); 
    progressDialog.setProgress(push.getChangesCount() + pull.getChangesCount()); 

//.....end } 

這樣在日誌中的貓,我得到

I/LoginActivity:複製進度= 51029 < - 這數變化
I/LoginActivity:複製總數= 56117 < - 此數字更改爲 以及

問題我得到的是progressdialog卡住了0%,沒有任何進展。
有關我如何解決它的任何想法?

回答

0

doInBackground只執行一次,所以你不能在你的對話框上得到任何更新。

使用的AsyncTask的onProgressUpdate方法來代替:

@Override 
protected void onProgressUpdate(Void... params) { 
    super.onProgressUpdate(values); 
    double total = push.getCompletedChangesCount() + pull.getCompletedChangesCount(); 
    progressDialog.setMax(total); 
    progressDialog.setProgress(push.getChangesCount() + pull.getChangesCount()); 
}