0

在我的应用程序中,我ViewPager用于显示一些数据,并且我想在每5sec的页面之间设置自动滚动

我使用下面的代码在每 5 秒内自动滚动页面。

private int page = 0;
private Handler handler;
private int delay = 5000;
private Runnable runnable = new Runnable() {
    public void run() {
        if (homeRecentPostAdapter.getCount() == page) {
            page = 0;
        } else {
            page++;
        }
        homePage_recentViewPager.setCurrentItem(page, true);
        handler.postDelayed(this, delay);
    }
};

    homePage_recentViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            page = position;
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

不使用这个Thread并且Handle 内存使用量(进入分析器选项卡)有80mb,但是在使用上述代码将自动滚动内存使用量上限设置为120mb并且每 5 次设置上限这个使用量后,然后在 2 分钟后接收250mb

我该如何解决?如何在不增加内存的情况下使用自动滚动?

4

1 回答 1

-1

检查你的ViewPager,也许它在每个翻页上创建新实例。如果您提供代码,我可能会指出。

于 2018-11-04T20:33:35.777 回答