我很欣赏在轮换更改上有关AsyncTask的大量发帖。 使用兼容性库时,遇到以下问题并试图closuresDialogFragment中的onPostExecute 。 我有一个AsyncTask显示进度DialogFragment ,然后在onPostExecuteclosures对话框,然后可能会抛出另一个DialogFragment 。 如果进度对话框正在显示,我把应用程序放入后台,我得到了以下的片段: 1) onPause 2) onSaveInstanceState 3) onPostExecute在其中我试图消除和调用一个对话框。 我得到一个IllegalStateException因为我试图有效地提交一个事务,当活动保存了它的状态,我明白这一点。 在我认为(也许不正确),我不会得到一个onPostExecute直到重新创build活动的onPostExecute 。 然而,当把应用程序放到后台时,我认为(当然肯定是错误的) onPostExectute在片段/活动暂停时不会被调用。 我的问题是,我的解决scheme是简单地在onPostExecute中检测到片段/活动已暂停,只需执行我需要在onResume做什么呢? 对我来说似乎有些丑陋。 在此先感谢彼得。 编辑1 需要支持2.1及以上版本 编辑2 我曾考虑使用FragmentTransaction:add显示对话框FragmentTransaction:add和FragmentTransaction:commitAllowingStateLoss但是这不是没有问题。
我使用ActionBarActivity来创build5个选项卡。 我使用ViewPager在使用扩展FragmentPagerAdapter的SectionsPagerAdapter的5个选项卡之间滑动。 每个选项卡都有一个在oncreateview方法中调用的asynctask片段。 当我在一个片段中,其他片段中的asynctask被调用。 我尝试在oncreateview方法中使用toast消息是每个片段而不是asynctask。 但是,错误的敬酒信息正在被错误的片段解雇。 创build方法代码: mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.pager_exp); mViewPager.setAdapter(mSectionsPagerAdapter); mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { actionBar.setSelectedNavigationItem(position); actionBar.setTitle(getHomePageTitle(position)); } }); for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) { // Create a tab with text corresponding to the page title defined by // the adapter. […]