似乎这个类不起作用,因为它从不发布进度。
onPostExecute
确实有效。但是这个课程主要依赖于progressUpdate
。
class DoBackgroundStuff extends AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... a) {
String rawContactsDl;
while(true) {
if (isFinished == true) {
backgroundStopped = true;
break;
}
//DO SOME STUFF
publishProgress(1);
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return "done";
}
protected void onProgressUpdate(int progress) {
Log.i("VERBOSE","onProgress " + progress);
adapter.notifyDataSetChanged();
}
protected void onPostExecute(String result) {
Log.i("VERBOSE","onPosts " + result);
adapter.notifyDataSetChanged();
}
}
答案 0 :(得分:8)
你的onProgressUpdate看起来应该是这样的:
protected void onProgressUpdate (Integer... values)
始终使用@Override来捕捉此类错误
答案 1 :(得分:5)
onProgressUpdate()
签名错误。它应该是
protected void onProgressUpdate(Integer... progress)