Android (Java) ViewPager with Fragments 唤醒后SwipeRefreshLayout 发送错误
Android (Java) ViewPager with Fragments after weakup mSwipeRefreshLayout send error
我的应用有
带有 ViewPager 的主 activity 和带有 Fragments 的三个选项卡。每个 Fragment 都是一个带有 SwipeRefreshLayout 的 ListView。
如果我的应用程序进入后台 - 我认为需要 3-5 个小时,它会从 taskmanager 加载,然后重新加载并且它是 fork。但是,如果我使用代码
从主 activity 调用片段(我用过滤器调用另一个 activity)
@Override
public void onRefresh() {
if (mSwipeRefreshLayout != null) {
// начинаем показывать прогресс
mSwipeRefreshLayout.setRefreshing(true);
// ждем 3 секунды и прячем прогресс
mSwipeRefreshLayout.postDelayed(new Runnable() {
@Override
public void run() {
arrayVideo.clear();
adapter.notifyDataSetInvalidated();
offset = 0;
isEnd = false;
loadVideoList(limit, offset,
activity.settings.getString("videoFilterName", ""),
activity.settings.getInt("videoFilterSector", 0),
activity.settings.getInt("videoFilterNumber", 0),
activity.settings.getInt("videoFilterMain", 0));
offset += limit;
// говорим о том, что собираемся закончить
// Toast.makeText(MainActivity.this, R.string.refresh_finished, Toast.LENGTH_SHORT).show();
}
}, 500);
}
}
它会导致崩溃。
问题:
1)我怎么反复收到这个错误?需要采取什么行动? (停止......)
2) 我做错了什么?
我明白了,这是父级对 Fragments 的真实调用 Activity:
VideoListFragment videoListFragment = (VideoListFragment) pagerAdapter.instantiateItem(mViewPager, TAB_VIDEO);
我的应用有 带有 ViewPager 的主 activity 和带有 Fragments 的三个选项卡。每个 Fragment 都是一个带有 SwipeRefreshLayout 的 ListView。 如果我的应用程序进入后台 - 我认为需要 3-5 个小时,它会从 taskmanager 加载,然后重新加载并且它是 fork。但是,如果我使用代码
从主 activity 调用片段(我用过滤器调用另一个 activity)@Override
public void onRefresh() {
if (mSwipeRefreshLayout != null) {
// начинаем показывать прогресс
mSwipeRefreshLayout.setRefreshing(true);
// ждем 3 секунды и прячем прогресс
mSwipeRefreshLayout.postDelayed(new Runnable() {
@Override
public void run() {
arrayVideo.clear();
adapter.notifyDataSetInvalidated();
offset = 0;
isEnd = false;
loadVideoList(limit, offset,
activity.settings.getString("videoFilterName", ""),
activity.settings.getInt("videoFilterSector", 0),
activity.settings.getInt("videoFilterNumber", 0),
activity.settings.getInt("videoFilterMain", 0));
offset += limit;
// говорим о том, что собираемся закончить
// Toast.makeText(MainActivity.this, R.string.refresh_finished, Toast.LENGTH_SHORT).show();
}
}, 500);
}
}
它会导致崩溃。
问题: 1)我怎么反复收到这个错误?需要采取什么行动? (停止......) 2) 我做错了什么?
我明白了,这是父级对 Fragments 的真实调用 Activity:
VideoListFragment videoListFragment = (VideoListFragment) pagerAdapter.instantiateItem(mViewPager, TAB_VIDEO);