我有一个 AsysTask
class myAsyncTask extends AsyncTask<Void, Void, Integer> {
ProgressDialog progDialog;
myAsyncTask() {
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progDialog = ProgressDialog.show(
SwitchArticle.this,
"Loading",
"Pleasewait",
true,
true,
new DialogInterface.OnCancelListener(){
@Override
public void onCancel(DialogInterface dialog) {
myAsyncTask.this.cancel(true);
}
}
);
}
@Override
protected Integer doInBackground(Void... arg0) {
// Call a function load Data Json...
return 1;
}
@Override
protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Integer result) {
super.onPostExecute(result);
if (result != 1) {
progDialog.dismiss();
Toast.makeText(
SwitchArticle.this,
"Error Load Data",
Toast.LENGTH_SHORT).show();
}
else
{
//.. Bind Data To Adapter
}
progDialog.dismiss();
}
}
调用 Oncreate 函数:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myAsyncTask ma = new myAsyncTask();
ma.execute();
}
第一次,这段代码加载数据并绑定到listview很好。然后,我按下其他活动,并返回这个活动调用 asyntask,这段代码运行得很好。
在我回到其他活动并完成此活动后,调用此 asysntask。我按下锁屏设备并等待大约 5 分钟。我解锁设备并返回活动调用此 asysntask。myAsynTask 运行doInBackGround
而不是运行以onPostExcute
将数据绑定到 ListView。
对不起,因为我的英语很差。我是越南人。