如何在onLoadFinish回调方法中提交FragmentPagerAdapter中的Fragment事务?

pix*_*xel 5 android adapter android-fragments android-viewpager android-support-library

我想通知回调函数中ViewPagerAdapter更改的数据集Loader.onLoadFinish.

它被阻止了,因为可能会保存片段的状态.

来自LoaderManager.LoaderCallbacks.onLoadFinished(Loader loader,D data)方法文档:

请注意,通常,在此调用中,不允许应用程序提交片段事务,因为它可能在保存活动状态后发生.

我怎样才能克服这个问题?如何检查哪个状态Activity并提交Fragment事务?

pix*_*xel 4

我提出了以下解决方案:

方法changeCursorInOtherThread用于onLoadFinishedonLoaderReset

Handler创建于Activity

private Handler mHandler = new Handler();

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    mSaved = true;

}

private void changeCursorInOtherThread(final Cursor data) {
    if(!mSaved){
        mHandler.post(new Runnable() {

            @Override
            public void run() {
                mViewPagerAdapter.changeCursor(data);
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)