Fragment1中的异步任务阻止了不同Fragment2上的另一个异步任务

时间:2015-02-11 15:49:25

标签: android android-fragments android-asynctask

我有一个带抽屉菜单的单一活动App

public class MainActivity extends ActionBarActivity {
....
void selectItem(int position) {

          Bundle args = new Bundle();
          args.putInt(PageFragment.ARG_Page_NUMBER, position);
          android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
          android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
          android.support.v4.app.Fragment fragment;
          int ActiveFragmentId = 3;
          if(position == 0 ){
             fragment = new Fragment1();
          } else if( position == 1){   
        fragment = new Fragment2();
    }
}
....

并且两个片段Fragment1和Fragment2都有异步任务

现在,如果Fragment1任务中的Asnc任务被启动(即在Fragment1中的异步任务的onBackground()上保持断点)并且我切换到Fragment2 Fragment2中的异步任务在Fragment1的onPostExceute()执行之前不起作用。这是为什么?

另外getActivity()== null,在Fragmnet1的异步任务的onPostExecute()内,同时切换到Fragment2

2 个答案:

答案 0 :(得分:0)

正如他们在执行顺序部分here中提到的那样,执行顺序取决于您的API级别。

您需要使用task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params)而非task.execute(params)

答案 1 :(得分:0)

尝试同步到两个异步任务。