首页 > 解决方案 > 弱化后带有片段的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)我做错了什么?

标签: javaandroidandroid-viewpagerswiperefreshlayout

解决方案


我明白了,这是从父 Activity 对 Fragments 的真实调用:

VideoListFragment videoListFragment = (VideoListFragment) pagerAdapter.instantiateItem(mViewPager, TAB_VIDEO);

推荐阅读