2017-02-04 4 views
0

브로드 캐스트 리시버를 사용하여 24 시간마다 조각의 변수 값을 업데이트하려고하는데 많은 연구가 끝난 후에도 변수 데이터를 업데이트하는 방법을 이해할 수 없습니다.Broadcast Reciever에서 Fragment android로 데이터 보내기

이것은 24 시간마다 알람을 호출하고 증가해야하는 변수를 Alarm Receiver에 보내고 둘 다 잘 작동하는 함수입니다.

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 –