我有后台任务,我想在运行时显示确定水平进度条。我希望用户能够看到过程的实际进度,因此我无法使用不确定的进度条。用进度条显示后台任务的实际进度
这里是后台的任务,我想显示一个进度:
ParseCloud.callFunctionInBackground("invite", params,
new FunctionCallback<String>() {
@Override
public void done(String object, ParseException e) {
// TODO Auto-generated method stub
Log.i("tag", "user create has run");
if (e == null) {
Toast.makeText(getActivity(), "successful" + mPhone, Toast.LENGTH_LONG).show();
} else {
String errorMessage = e.getMessage().toString();
Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_LONG).show();
}
}
});
我曾经想过用的AsyncTask,但这种ParseCloud.callFunctionInBackground
一段代码为自己创建一个新的线程和运行其任务它。所以,当我在AsyncTask的背景中调用它时,它到达代码的这一部分的时候为它创建一个新的线程,即留下由AsyncTask的doInBackground创建的线程。然后因为没有更多的工作在其线程上完成,doInBackground结束并且onPostExecute被调用,同时该任务仍在其创建的线程上运行。无论进展如何,我都显得毫无用处。
有没有一种方法可以获得进程的进度并显示确定水平进度条?
您可以使用onProgressUpdate()是指HTTP ://www.androidhive.info/2012/04/android-downloading-file-by-showing-progress-bar/ –
不,问题是在doInBackground里面有另一个线程,所以doInBackground立即完成。 onProgressUpdate会直接跳到100%。 –