在两个android活动中执行两个AsyncTask?

时间:2014-04-13 16:41:44

标签: android android-asynctask android-lifecycle

我正在制作一个包含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。

0 个答案:

没有答案