【问题标题】:How to use Handle without increase Memory in Android如何在Android中使用Handle而不增加内存
【发布时间】:2019-04-08 05:34:54
【问题描述】:

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

我使用下面的代码在每 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) {

        }
    });

不使用这个ThreadHandle 内存使用(进入profiler标签)有80mb,但使用上述代码后将自动滚动内存使用上限设置为120mb,每5设置一次上限,然后在2min后接收到250mb

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

【问题讨论】:

    标签: java android android-handler android-thread


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 2020-11-03
      • 2014-01-10
      相关资源
      最近更新 更多