我正在制作一个包含3个活动的Android应用程序,从远程服务器获取数据,我使用AsyncTask
,它运行正常。
活动A&活动B活动C :
活动A执行AsyncTask(Task_A),在onPostExecute中,我启动第二个Activity_B,它将在onResume。中执行AsyncTask(Task_B),第二个onPostExecute,第三个活动将执行。
在Activty A:
// GetResults1 task1 =new GetResults1();
@Override
public void onClick(View v) {
task1.execute();
}
private class GetResults1 extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0) {
// here my code (it worked finally)
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivity(intent);
}
}
在Activty B中
@Override
protected void onResume() {
// TODO Auto-generated method stub
Log.i("LOADING", "onResume");
super.onResume();
GetResults2 task2 =new GetResults2();
task2.execute();
}
private class GetResults2 extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0) {
// here my code (it worked finally)
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
Intent intent = new Intent(ActivityB.this, ActivityC.class);
startActivity(intent);
}
}
问题现在:
如果我运行我的应用程序并看到logcat:第二个asynck任务在第一个活动的onStop之前执行。
OnCreate Activity_A
OnStart Activity_A
OnResume Activity_A
Task_1 begin // action button
onPreExecute Task_1
doInBackground Task_1
onPostExecute Task_1
OnPause Activty_A |||||||||||
OnCreate Activity_B ||||||
OnStart Activity_B
OnResume Activity_B
Task_2 begin
onPreExecute Task_2
doInBackground Task_2
onPostExecute Task_2
OnStop Activity_A
我想在ActivityA执行onStop方法时执行第二个AsynckTask。