Изменить элемент в ViewPager по тревоге

Я пытаюсь сделать приложение, которое сбрасывает каждую полночь в представление по умолчанию.

Итак, я настроил будильник в своем MainActivity и AlarmReceiver, который расширяет BroadcastReceiver

Это класс AlarmReceiver:

public class AlarmReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // Will be executed when Alarm is fired
        Toast.makeText(context, "HELLO TEST", Toast.LENGTH_SHORT).show();
    }
}

И это мой MainActivity

// VerticalViewPager & adapter
VerticalViewPager verticalViewPager = (VerticalViewPager) findViewById(R.id.verticalViewPager);
adapterViewPager = new CustomPagerAdapter(getSupportFragmentManager());
verticalViewPager.setAdapter(adapterViewPager);

В этом примере будильник срабатывает каждый день в полночь и пишет тостовое сообщение. Вместо этого я хочу, чтобы будильник изменил текущий элемент, отображаемый в ViewPager:

// Will set the view I want
verticalViewPager.setCurrentItem(3);

Но, конечно, я не могу написать это под onReceive метод, потому что он не знает, что verticalViewPager является. Я также новичок в ООП.

1 ответ

Существует множество способов связать AlarmReceiver с теми компонентами, которые фактически способны полностью контролировать verticalViewPager. Например, EventBus(немного устаревший), RXjava(тема публикации) и т. Д.

И если приложение не всегда запускается на переднем плане в полночь, это скорее похоже на глубокую ссылку на целевую страницу (MainActivity?), А затем обновляет Viewpager.

Другие вопросы по тегам