【发布时间】: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) {
}
});
不使用这个Thread 和Handle 内存使用(进入profiler标签)有80mb,但使用上述代码后将自动滚动内存使用上限设置为120mb,每5设置一次上限,然后在2min后接收到250mb !
我该如何解决?如何在不增加内存的情况下使用自动滚动?
【问题讨论】:
标签: java android android-handler android-thread