2017-02-04 2 views
0

Ich versuche, den Wert einer Variablen in meinem Fragment alle 24 Stunden mit einem Broadcast-Empfänger zu aktualisieren und kann nicht verstehen, wie die variablen Daten auch nach vielen Nachforschungen aktualisiert werden.Senden von Daten von Broadcast Reciever zu Fragment android

Dies ist die Funktion, die ich benutze, um den Alarm alle 24 Stunden aufzurufen und die Variable, die inkrementiert werden muss, an den Alarmempfänger zu senden, die beide gut funktionieren.

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)); 

} 

Nach einigen Recherchen habe ich nicht in der Lage zu verstehen, wie auf den Wert übertragen abgerufen und erhöht zurück zum Fragmente gesendet werden sollte. Das ist meine Empfängerklasse.

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? 
} 

}

Jede Hilfe würde geschätzt.

+0

Check diesen Link http://android-er.blogspot.in/2015/04/example-of-using-alarmmanager-to.html – darwin

Antwort

0

Der strukturiertere Weg wäre, diese Klassen lose gekoppelt zu halten und sie unter Verwendung eines EventBus miteinander zu verbinden. Damit können Sie nahtlos Daten als Ereignis an mehrere Klassen übergeben. Um die Verwendung sehen, die dieses Answer

+0

Wie würden die Daten zurückgeschickt in die onEvent-Funktion, wenn die Daten empfangen wurden und jetzt zurückgesendet werden müssen @OBX –

+0

Daten senden von wo und von wo empfangen? – OBX

+0

Wenn die Daten vom Fragment mit der post-Methode des Ereignis-Bus gesendet und anschließend von der onEvent-Methode in der Reciever-Klasse mithilfe von 'event.getmessage()' abgerufen werden. Ich muss diese Nachricht aktualisieren und sie an das Fragment zurücksenden. @OBX –

Verwandte Themen