java - 弱化后带有片段的Android(Java)ViewPager mSwipeRefreshLayout发送错误
问题描述
我的应用程序有一个带有 ViewPager 的主要活动和三个带有 Fragments 的选项卡。每个 Fragment 都是一个带有 SwipeRefreshLayout 的 ListView。如果我的应用程序在后台运行 - 我认为 3-5 小时,它会从任务管理器加载,它会重新加载并且它是分叉的。但是如果我用代码从主要活动中调用片段(我用过滤器调用另一个活动)
@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)我如何反复收到此错误?需要采取哪些措施?(onStop .....) 2)我做错了什么?
解决方案
我明白了,这是从父 Activity 对 Fragments 的真实调用:
VideoListFragment videoListFragment = (VideoListFragment) pagerAdapter.instantiateItem(mViewPager, TAB_VIDEO);
推荐阅读
- javascript - React Native:手机号码验证仅接受数值
- javascript - 如何使用按钮在我的 HTML 中实现 JavaScript 函数?
- mysql - 如何在现有列中添加值?
- distributed-database - 为什么启动 PD 时会显示 `etcd cluster ID mismatch` 消息?
- javascript - 蓝图/反应:滑块的自定义标签
- c - pthread_join() 后指向 int 的指针导致崩溃
- c# - 在顶部显示最新列表
- ms-access - 对象无效或不再设置
- typescript - 如何编写 Typescript d.ts 文件来扩展 @types/d3
- python - Python 附加文件