2017-05-05 134 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()); 
}