Receptor de radiodifusión en fragmento no recibe intención de servicio
Tengo un fragmento y un servicio como a continuación:
Me registro y cancelo el registro de LocalbroadcastManager en el archivo Fragment.java
- Android pasa los datos de Actividad a BroadcastReceiver muestra null
- ¿Cómo puedo enviar un SMS desde un BroadcastReceiver y comprobar su estado?
- Ciclo de vida de BroadcastReciever - Variables estáticas
- Detectar el final de una llamada entrante atendida por el usuario en android? (No rechazado)
- Cómo iniciar el servicio en android sin actividad
Fragment.java
@Override public void onStart() { // TODO Auto-generated method stub super.onStart(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(ffmpegService.PROGRESS); intentFilter.addAction(ffmpegService.DONE); LocalBroadcastManager.getInstance(getActivity()). registerReceiver(receiver, intentFilter); } @Override public void onStop() { LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(receiver); super.onStop(); } private final BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equalsIgnoreCase(ffmpegService.PROGRESS)){ .... } }
En la clase ffmpegService, envío la emisión al fragmento en 1 manejador como se muestra a continuación:
FfmpegService.java
private Handler handler; private Context mContext; public void onCreate() { mContext = this.getApplicationContext(); } @Override public void onStart(Intent intent, int startid) { handler = new Handler(); handler.postDelayed(workTask, 3000); } private Runnable workTask = new Runnable() { @Override public void run() { Intent intent = new Intent(PROGRESS); intent.putExtra("progress", 90); LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent); } }
Pero al correr, el fragmento no recibió nada de la difusión de servicios.
¡Cualquier ayuda sería apreciada!
Gracias.
- ¿Cómo puedo pasar los datos de un BroadcastReceiver a una actividad iniciada?
- Android: validar la identidad del remitente de la intención
- Xamarin: BroadcastReceiver no recibe cuando la aplicación no se está ejecutando
- ReceiverRestrictedContext no se puede convertir en android.app.Activity
- Resultados de escaneo Wifi receptor de difusión no funciona
- Mejores prácticas de Android para actualizar la interfaz de usuario de BroadcastReceiver a una determinada actividad
- Comprobando si un BroadcastReceiver está declarado en el manifiesto en tiempo de ejecución?
- TaskStackBuilder # startActivities () NullPointerException
Encontré la causa raíz. Porque mi servicio se ejecuta en su propio proceso.
<service android:name="com.media.ffmpeg.ffmpegService" android:enabled="true" android:process="com.media.ffmpegservice"> </service>
He eliminado android: process = "com.media.ffmpegservice" y funciona bien.