OnReceive no se llama al eliminar Widgets en la pantalla de bloqueo – Nexus 7
Quiero habilitar mi widget en la pantalla de bloqueo de Jelly Bean (Nexus 7, Android 4.2.1)
Mi problema es que onReceive()
nunca se llama cuando se quita un widget de la pantalla de bloqueo, creando tantos widgets de fantasmas como agregar / quitar.
- Mostrar texto del ticker de notificación de la barra de estado cuando la pantalla está bloqueada en Android
- El desarrollo de una aplicación de pantalla de bloqueo de Android
- Android Galaxy S4 - Actividad visible en la pantalla de bloqueo
- Una forma de obtener desbloquear evento en android?
- Evitar la expansión de la barra de estado
Funciona bien en la pantalla de inicio (se elimina un widget, onReceive()
se llama, luego onDelete()
y si es el último widget onDisable()
), pero no funciona en la pantalla de bloqueo.
En la pantalla de bloqueo onReceive()
se llama APPWIDGET_ENABLED
, APPWIDGET_UPDATE
y APPWIDGET_UPDATE_OPTIONS
y eso es todo.
Para colocar un widget en la pantalla de bloqueo, sólo tienes que añadir android:widgetCategory="home_screen|keyguard"
a tu widget y probarlo en la pantalla de bloqueo
- Cómo deshabilitar la pantalla de desbloqueo programáticamente
- Unity3D Android Lockscreen no se muestra cuando la pantalla se agota. (Wakelock?)
- Android Lollipop - controles de música de pantalla de bloqueo
- Notificación de la pantalla de bloqueo de Android Facebook
- Creación de una aplicación de pantalla de bloqueo de Android.
- Personalización de la funcionalidad de la pantalla de bloqueo de Android?
- Iniciar actividad externa mientras el teléfono está bloqueado
- Diferenciar RemoteControlClient de los auriculares
Tenía la misma experiencia con mi widget de pantalla de bloqueo Jelly Bean. OnReceive (), onDelete () y onDIsable () nunca se llaman y el widget mantiene la actualización incluso después de haberlo eliminado de la pantalla de bloqueo. El mismo comportamiento en mi Galaxy Nexus (4.2.1) y Nexus 7 (4.2.1). Los widgets de fantasmas desaparecen después de un reinicio.
Tal vez algo que ver con el comportamiento de los widgets de pantalla de bloqueo incorporados. El reloj vuelve a aparecer después de eliminarlo.
Espero que esto sea aclarado en los documentos algún tiempo.
Prueba éste
"Se debe exportar un AppWidgetProvider, de modo que el proceso de núcleo del SO que coordina los widgets de la aplicación (entre hosts y proveedores) pueda hablar con él. Por lo tanto, android:exported="false"
es inapropos.
Para ser honesto, no habría esperado nada para trabajar con el proveedor, en lugar de sólo algunos eventos. "
CommonsWare
https://stackoverflow.com/a/22719694/4683601
<receiver android:name=".AppWidgetBarProvider" android:exported="true" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget_bar_info" /> </receiver>
- Notificaciones push iOS y código nativo cliente-cliente de Android
- Android BroadcastReceiver: ejecutarlo en el proceso por defecto o en uno nuevo?