Ich habe ein Problem mit meinem BroadcastReceiver. Grundsätzlich habe ich eine Funktion in meinem Service, dass ich jeden, sagen wir, 2 Stunden anrufen möchte. Also habe ich den AlarmManager und den Broadcast-Empfänger benutzt, aber es sieht so aus, als würde der Empfänger niemals gerufen. Mein Code:Android - BroadcastReceiver nie von AlarmManager
in onCreate Methode Dienst:
Intent intent5 = new Intent("MYINTENT");
sender2 = PendingIntent.getBroadcast(this, 192838, intent5, PendingIntent.FLAG_UPDATE_CURRENT);
am2 = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE);
am2.setRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 1000*60*60*2, sender2);
BroadcastReceiver connectionReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
check();
}
};
registerReceiver(connectionReceiver, new IntentFilter("MYINTENT"));
und dann ist da noch die check() Methode
public static void check(){
//some code
}
Ich habe auch versucht, eine Klasse Creat BroadcastReceiver erstreckt, es in der Registrierung Manifest usw., und es wurde aufgerufen, aber dann habe ich eine NullPointerException, die das check() -Methode des Dienstes vom BroadcastReceiver aus aufruft.
Ja, das war tatsächlich eine bessere Lösung. Als ich schließlich die Ursache für diese Ausnahme fand, funktionierte es wie ein Zauber. Vielen Dank! – ThunderSS