Error del receptor no registrado cuando se llama a la función onDestroy
Cuando creo la clase que extiende BrodcastReceiver y lo registra. Error Unable to destroy activity, Receiver not registered: null
onDestroy () function in MainActivity Cuando llama unregisterReceiver.
OnCreate ():
- Detener el receptor de difusión de un botón en acivity
- ¿Le falta una llamada para anular el registroReceiver ()? En android
- Más de un BroadcastReceiver para la misma intención con doc contradictorio y práctica
- Creado BroadcastReceiver que muestra el nombre de la aplicación y el número de versión en la instalación / desinstalación de cualquier aplicación?
- ¿Es posible escribir un receptor de difusión Android que detecte cuando el teléfono se despierta?
ConnectionChangeReceiver connectionChangeReceiver = new ConnectionChangeReceiver(); IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); registerReceiver(connectionChangeReceiver, filter);
OnDestroy ():
@Override protected void onDestroy() { Log.v("YourActivity", "onDestroy"); unregisterReceiver(connectionChangeReceiver); super.onDestroy(); }
ConnectionChangeReceiver Clase:
public class ConnectionChangeReceiver extends BroadcastReceiver { @Override public void onReceive( Context context, Intent intent ) { Toast.makeText(context, "CONN", Toast.LENGTH_SHORT).show(); } }
Manifest: UPDATE:
Después de agregar <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.mamrezo.mapapp" > <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.mamrezo.mapapp.MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".ConnectionChangeReceiver" > <intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter> </receiver> </application> </manifest>
- Broadcast reciever correr en el hilo principal?
- Android BroadcastReceiver onReceive () llamado dos veces en android 4.0
- BroadcastReceiver: set android: proceso de forma programática
- BroadcastReceiver para Ethernet (RJ45) y USB en Android TV
- El receptor de la difusión para comprobar la conexión a internet se llama dos veces cuando desconecto el wifi
- RTC_WAKEUP no funciona
- Direccionamiento explícito de una intención a un receptor de difusión dinámica
- BroadcastReceiver no funciona correctamente a menos que se registre manualmente
Siempre register
el receptor en el onStart
y lo onStop
en el onStop
. Lo supe gracias a esta respuesta: https://stackoverflow.com/a/24391706/1203797
Si todavía no funciona en su caso, simplemente envolver unregisterReceiver(connectionChangeReceiver);
Un bloque try-catch
sería la respuesta, como se indica en el enlace que he publicado anteriormente.
O puede registrarlo en el manifest
, por ejemplo:
<receiver android:name=".ConnectionChangeReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
- La localización simulada no funciona en el mapa de Google
- Reproductor de vídeo flotante (como el reproductor de youtube) en android