我有一个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。
很抱歉,因为我的英语很差。我是越南人。
答案 0 :(得分:0)
我认为当您解锁屏幕并返回到您的活动时会调用onCreate。这意味着你的AsyncTask将再次开始运行......希望有所帮助