Ich habe eine Klasse, die erweitert IntentService
; In dieser Klasse sende ich eine Intent
, die von einer BroadcastReceiver
innerhalb einer Activity
registriert werden sollte. Das Problem ist, dass 90% der BroadcastReceiver
Intent
korrekt empfängt. 10% tut es nicht. Debugging meiner App Ich sah, dass alle meine Code funktioniert perfekt, bis die Intent
gesendet wird; Das Problem trat auf, nachdem die Intent
gesendet wurde!BroadcastReceiver empfängt nicht immer
Dies ist mein Code. Manifest-Datei:
...
<receiver
android:name=".BroadcastReceiver.MediaBroadcastReceiver"
android:enabled="true"
android:exported="true" />
...
BroadcastReceiver in der Aktivität:
public class ContactDetail extends AppCompatActivity implements MediaBroadcastReceiverInterface{
...
@Override
public void MediaBroadcastReceiverCallback() {
//This is the method that is not always called
}
...
}
ist dies die BrodcastReceiver:
public class MediaBroadcastReceiver extends BroadcastReceiver {
public interface MediaBroadcastReceiverInterface{
void MediaBroadcastReceiverCallback();
}
private MediaBroadcastReceiverInterface mediaBroadcastReceiverInterface;
public static final String PROCESS_RESPONSE = "com.xxx.appname.BroadcastReceiver.MediaBroadcastReceiver.PROCESS_RESPONSE";
public MediaBroadcastReceiver() {
}
@Override
public void onReceive(Context context, Intent intent){
try {
mediaBroadcastReceiverInterface = (MediaBroadcastReceiverInterface)context;
mediaBroadcastReceiverInterface.MediaBroadcastReceiverCallback();
}
catch (ClassCastException e) {
Log.i(TAG, "Activity doesn't implement the MediaBroadcastReceiverInterface interface");
}
}
}
Dies ist IntentService in dem ich die Absicht zum BroadCastReceiver gesendet
public class MediaIntentService extends IntentService {
public void send(){
Intent broadcastIntent = new Intent();
broadcastIntent.setAction(MediaBroadcastReceiver.PROCESS_RESPONSE);
broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT);
sendBroadcast(broadcastIntent);
}
}
Vielen Dank für Ihre Hilfe
'von einem BroadcastReceiver erhielt innerhalb eines Activity' registriert Sind Sie sicher, der Broadcastempfänger wird registriert, wenn der Intent ausgelöst wird? In welchen Lifecycle-Methoden registrieren Sie den Broadcast-Receiver (nicht)? – F43nd1r