如何在Android中使用Handle而不增加内存

时间:2018-11-04 19:28:53

标签: java android android-handler android-thread

在我的应用程序中,我使用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

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

1 个答案:

答案 0 :(得分:-1)

检查您的"Hello",也许它是在每一页上创建新实例。 如果您提供了代码,我也许可以指出。