Ich habe die Hauptaktivität, die einen Dienst ausführen. In diesem Dienst initiiere ich einen BroadcastReceiver (Alarm).SendBroadcast() funktioniert nicht bei Empfang von Broadcast
Dann brauche ich briadcast von der onReceive Methode der Alarm Broadcst, aber funktioniert nicht. Aber wenn ich sendBroadcast() von einer anderen Methode in Alarm ausführen, perfekt funktionieren.
Siehe de-Code für mich erklären:
Aktivität (init-Service und erhalten broadcastReceiver)
private final BroadcastReceiver abcd = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//Intent in = getIntent();
//finish();
Log.d("sdasd", "onReceive: BROADCAST RECIBIDO!!!");
}
};
Dienst
alarm alarm = new alarm();
public void onCreate()
{
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
alarm.setAlarm(this, tiempo);
return START_STICKY;
}
Alarm.class
@Override
public void onReceive(Context context, Intent intent)
{
context.sendBroadcast(new Intent("xyz"));
Toast.makeText(context, "Alarm !!!!!!!!!!", Toast.LENGTH_LONG).show(); // For example
}
public void setAlarm(Context context, int tiempo)
{
Log.e("TAG", "setAlarm: ");
context.sendBroadcast(new Intent("xyz"));
AlarmManager am =(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, alarm.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), tiempo, pi); // Millisec * Second * Minute
}
In alarm.class wird das sendBroadcast in serAlarm() ausgeführt, aber das sendBroadcast in onreceive, wird nicht ausgeführt. Und der Toast funktioniert perfekt.
Warum?
Wo haben Sie diesen 'BroadcastReceiver' registriert? In dem Code, den Sie freigegeben haben, instanziieren Sie es, aber Sie registrieren es nicht – 0xDEADC0DE
welche Aktionen ist Ihr 'abcd' abonniert für? Zeige den Code, wo du 'abcd' Empfänger registrierst –
Ich registriere den abc reciver in onCreate of activity // registerReceiver (abcd, neuer IntentFilter ("xyz")); Reciver Arbeit gut, aber nicht in onReceive anderer Broadcast – WIngenia