Android 装载机&x27;在重新创建视图之前,不会调用相邻页面上的s onLoadFinished()
我很难正确实现加载程序。我读了很多文章和帖子,尝试了很多东西。但这一问题尚未得到解决。我正在使用带有PagerSlidingTabStrip库的viewpager创建一个3选项卡布局(使用FragmentPagerAdapter)。我使用3个单独的加载程序加载这3个选项卡的数据 问题是,当我第一次加载我的应用程序时,相邻的选项卡不会调用loadInBackground(),直到我滚动到这些选项卡,即使FragmentPagerAdapter成功创建了相邻的片段。奇怪的是,当我旋转或按home键并再次打开应用程序时,相邻的选项卡开始加载。这意味着,如果视图被销毁并重新创建,则开始加载 我还尝试在所有3个片段中对加载程序使用startLoading(我相信我的OnStartLoading方法配置正确,我在该方法中调用forceLoad()。如果使用startLoading,则调用loadInBackground()。然而,onLoadFinished()不是!所以我的视图仍然显示一个空的旋转加载程序,直到我移动到相邻的选项卡 因此,简而言之,无论是否调用loadInBackground(),在重新创建视图之前都不会调用相邻页面的onLoadFinished()。(当然,如果我只是转到那些页面) 有人遇到过类似的问题吗?我觉得我已经尽了我所能,却不知道如何处理这个问题 这是我的onCreateView(): 我的抽象AsyncTaskLoader类:Android 装载机&x27;在重新创建视图之前,不会调用相邻页面上的s onLoadFinished(),android,android-viewpager,asynctaskloader,Android,Android Viewpager,Asynctaskloader,我很难正确实现加载程序。我读了很多文章和帖子,尝试了很多东西。但这一问题尚未得到解决。我正在使用带有PagerSlidingTabStrip库的viewpager创建一个3选项卡布局(使用FragmentPagerAdapter)。我使用3个单独的加载程序加载这3个选项卡的数据 问题是,当我第一次加载我的应用程序时,相邻的选项卡不会调用loadInBackground(),直到我滚动到这些选项卡,即使FragmentPagerAdapter成功创建了相邻的片段。奇怪的是,当我旋转或按home键并
private D mData;
public DataLoader(Context context) {
super(context);
}
@Override
protected void onStartLoading() {
if (mData != null) {
deliverResult(mData);
} else {
forceLoad();
}
}
@Override
public void deliverResult(D data) {
mData = data;
if (isStarted())
super.deliverResult(data);
}
我的简历()
我能看看你的残片PageRadapter吗?@wangqi060934对不起,我不久前就放弃了这个项目。感谢您的回复..->这个解决方案有效
private D mData;
public DataLoader(Context context) {
super(context);
}
@Override
protected void onStartLoading() {
if (mData != null) {
deliverResult(mData);
} else {
forceLoad();
}
}
@Override
public void deliverResult(D data) {
mData = data;
if (isStarted())
super.deliverResult(data);
}
public void onResume() {
super.onResume();
// Call this to re-connect with an existing loader
LoaderManager lm = getLoaderManager();
if (lm.getLoader(MOVIE_DATA_LOADER) != null) {
lm.initLoader(MOVIE_DATA_LOADER, null, new MovieDataLoaderCallbacks());
}
if (lm.getLoader(CONFIG_LOADER) != null) {
lm.initLoader(CONFIG_LOADER, null, new ConfigurationLoaderCallbacks());
}
}