Как использовать Handle без увеличения памяти в Android - PullRequest
0 голосов
/ 04 ноября 2018

В моем приложении я использую 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 память использование (в профилировщик вкладка) имеет 80 МБ , но после использования выше коды для набора автопрокрутка использование памяти сверху до 120 МБ и каждые 5 установок выше этого использования, затем после 2мин получение до 250 МБ !

Как я могу это исправить? как использовать автопрокрутку без увеличения памяти?

1 Ответ

0 голосов
/ 04 ноября 2018

проверьте ваш ViewPager, возможно, он создает новый экземпляр на каждом повороте страницы. Если вы предоставите код, я могу указать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...