2017-11-17 10 views
0

私はすべての真夜中をデフォルトビューにリセットするアプリケーションを作ろうとしています。アラーム時に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); 

この例では、毎晩真夜中にアラームがオフになり、トーストメッセージが書き込まれます。

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

しかし、それはverticalViewPagerが何であるかを知らないので、もちろん、私はonReceive法の下でこれを記述することはできません。私が代わりに欲しいのは、アラームがViewPagerに表示されている現在の項目を変更ということです。私はOOPにも新しいです。

+0

[Update in BroadcastReceiver](https://stackoverflow.com/a/22870274/7831581) – dralexnumber

答えて

0

実際にverticalViewPagerを完全に制御できるコンポーネントにAlarmReceiverをリンクする方法はたくさんあります。 例:EventBus(少し古い)、RXjava(件名を公開)など

、アプリが常に真夜中にフォアグラウンドで実行されていない場合、それはあなたがターゲットページへのディープリンク(に必要な多くのようなものですMainActivity?)、そしてViewpagerを更新する。

+0

アプリが深夜に実行されない場合は問題ではないので、私はカレンダーの比較を行います。昨日とは別の日であればページャを3 onCreateに設定します。 –

関連する問題