2017-02-04 5 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 bus, а затем извлекаются из метода onEvent в классе Reciever с помощью 'event.getmessage()'. Мне нужно обновить это сообщение и отправить его обратно в фрагмент. @OBX –