我使用Async任务更新我的活动数据。它适用于所有设备,直到日期,但在Android 4.2.2 KitKat AsyncTask的onProgressUpdate方法不起作用。
以下是AsyncTask的参考代码
class MyAsync extends AsyncTask<String, String, String>
{
boolean flag = true;
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
while(flag)
{
// do background Task
//publishProgress
publishProgress("");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
@Override
protected void onProgressUpdate(String... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
//Update UI
}
}
这段代码我如何启动AsyncTask
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
else
asyncTask.execute(params);
答案 0 :(得分:1)
当版本为Honeycomb或更高版本时,您没有将参数传递给任务。试试这个:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
else
asyncTask.execute(params);
答案 1 :(得分:-1)
永远不会调用doInBackground()。