我有一个带抽屉菜单的单一活动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
答案 0 :(得分:0)
正如他们在执行顺序部分here中提到的那样,执行顺序取决于您的API级别。
您需要使用task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params)
而非task.execute(params)
。
答案 1 :(得分:0)
尝试同步到两个异步任务。