2017-02-04 6 views
0

ブロードキャスト受信機を使用して24時間ごとに変数の値を更新しようとしていますが、多くの研究の後でも変数データの更新方法を理解できません。Broadcast RecieverからFragmentへのデータ送信android

これは、アラームを24時間ごとに呼び出すために使用する関数であり、増分する必要のある変数をアラーム受信機に送信して、どちらも正常に動作しています。

public void scheduleAlarm() { 

    Intent intentAlarm= new Intent(getActivity(), AlarmReciever.class); 
    intentAlarm.putExtra("imageName",""+imagename); // variable to be updated 
    Calendar calNow = Calendar.getInstance(); 
    Calendar calSet = (Calendar) calNow.clone(); 
    calSet.set(Calendar.HOUR_OF_DAY, 4); 
    calSet.set(Calendar.MINUTE, 18); 
    calSet.set(Calendar.SECOND, 0); 
    calSet.set(Calendar.MILLISECOND, 0); 
    if(calSet.compareTo(calNow) <= 0){ 
     calSet.add(Calendar.DATE, 1); 
    } 
    AlarmManager alarmManager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE); 
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(),AlarmManager.INTERVAL_DAY, PendingIntent.getBroadcast(getActivity(), 1, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT)); 

} 

私が取り出され、バックフラグメントに送信されるようにインクリメント値に転送する方法を理解することができていないいくつかの研究を行った後。これは私のレシーバークラスです。

public class AlarmReciever extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent) { 

    Log.e("servicerun","true"); 
    String intentImageName = intent.getStringExtra("imageName"); 
    int numberImageName = Integer.parseInt(intentImageName) +1; // How to send this value back to the fragment? 
} 

}

任意の助けが理解されるであろう。

+0

このリンクをチェックしてください。http://android-er.blogspot.in/2015/04/example-of-using-alarmmanager-to.html – darwin

答えて

0

より構造化された方法は、これらのクラスを疎結合したままにして、EventBusを使用してそれらをリンクさせることです。シームレスにイベントを複数のクラスに渡すことができます。使用状況を確認するには、これをチェックしてくださいAnswer

+0

どのようにデータを返信しますか?データが受信されたときにonEvent関数が返されます。@OBX –

+0

どこからどこからデータを送信するのですか? – OBX

+0

の場合、イベントバスのpostメソッドを使用してフラグメントからデータが送信され、その後、 'event.getmessage()'を使用してRecieverクラスのonEventメソッドから取得されます。私はそのメッセージを更新し、それをフラグメントに送り返す必要があります。 @OBX –

関連する問題