我正在实施 AsyncTask 以了解概念。代码正在工作,但不是我想要的方式。我已经浏览了这些文件,但无法指出我做错了什么。
代码:
private class NewThread extends AsyncTask<Integer, Integer , String>
{
@Override
protected String doInBackground(Integer... params) {
Log.d(TAG,"inside doInBackground");
for (int i=0;i<params.length;i++)
{
try {
publishProgress(i);
Thread.sleep(6000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return "Finished";
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
Toast.makeText(getBaseContext(), result, Toast.LENGTH_SHORT).show();
Log.d(TAG,"inside onPostExecute");
}
@Override
protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
Toast.makeText(getBaseContext(), "Done " + values[0], Toast.LENGTH_SHORT).show();
Log.d(TAG,"inside onProgressUpdate");
}
我只看到 Done 0
和Finished
。我期待的是 Done0 , Finished, Done1, Finished, Done2。完成....或完成0 完成1 完成2 ....完成。
我应该在代码中更改什么来做到这一点?甚至可能吗?
我正在使用按钮调用 AsyncTask。
public void onClick(View v) {
// TODO Auto-generated method stub
new NewThread().execute(4);
}
谢谢