使用android-support-v4.jar和FragmentActivity(此时没有片段)
我有一个AsyncTaskLoader,我开始加载,然后在后台线程仍在运行时更改方向.在我的日志中,我看到响应来自后台请求.响应完成,我希望调用onLoadFinished(),但它永远不会.
作为一种故障排除方法,在Manifest中,如果我设置android:configChanges ="orientation"onLoadFinished()按预期调用.
我的Activity实现了加载器回调.在LoaderManager.initLoader()的源代码中,我看到如果加载器已经存在,则新的回调设置为LoaderInfo内部对象类,但我没有看到再次调用Loader.registerListener()的位置.只有在调用LoaderManagerImpl.createAndInstallLoader()时才会调用registerListener.
我怀疑,由于活动在方向更改时被销毁并重新创建,并且由于它是回调的监听器,因此未注册新活动以通知.
任何人都可以确认我的理解和解决方案,以便在方向改变后调用onLoadFinished?
我的问题基本上与这个问题相同:有时在调用initLoader后没有得到onCreateLoader回调
我有2个ListFragments包含在ViewPager.它们首先加载正常,但是当我改变方向时,该initLoader方法不会调用onCreateLoader.但是,如果我恢复到初始方向,一切都很好.
这是我的代码FragmentActivity:
import java.util.Locale;
import com.d.camera.R;
import com.d.camera.R.id;
import com.d.camera.R.layout;
import com.d.camera.R.menu;
import com.d.camera.R.string;
import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.NavUtils;
import android.support.v4.view.ViewPager;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class HistoryFragments extends FragmentActivity implements
ActionBar.TabListener {
/**
* The {@link android.support.v4.view.PagerAdapter} that will provide
* fragments for each of the …Run Code Online (Sandbox Code Playgroud) android ×2