我想通知ViewPagerAdapter回调函数中的数据集已更改。
因为碎片的状态可能被保存,所以它被阻止。
LoaderManager.LoaderCallbacks.onLoadFinished(Loader loader, D data)方法文档:
请注意,通常不允许应用程序在此调用中提交片段事务,因为它可能在保存活动的状态后发生。`
我怎样才能克服这个问题?如何检查Loader.onLoadFinish处于哪个状态并提交Activity事务?

最佳答案

我有以下解决方案:
方法changeCursorInOtherThread用于onLoadFinishedonLoaderReset
HandlerActivity中创建:

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);
            }
        });
    }
}

08-18 18:40
查看更多