¿Hay alguna manera de recibir una notificación cuando el usuario apaga el dispositivo?
Necesito saber cuando el usuario apaga su teléfono. ¿Hay alguna emisión (o similar) que notifique cuando el teléfono del usuario está apagado?
- Registrar programáticamente un receptor de difusión
- ¿Cómo identifica * qué * dispositivo bluetooth causa una emisión ACTION_ACL_CONNECTED?
- ¿Cómo se puede detectar el lanzamiento de una aplicación de Android?
- No se puede detectar cuando se responde la llamada saliente en Android
- Activar y desactivar un receptor de difusión
- El BroadcastReceiver para la intención ACTION_MEDIA_BUTTON se activa TWICE por clic en MediaButton
- Más de un BroadcastReceiver para la misma intención con doc contradictorio y práctica
- BroadcastReceiver onReceive activado cuando se registra
- Cómo atrapar el sistema de difusión BOOT_COMPLETED, mi programa simplemente no funciona?
- Usando getWindowManager () dentro de BroadcastReceiver
- Android BootReceiver no funciona
- ¿Por qué mi Broadcast Receiver no recibe las acciones de difusión del sistema?
- Cómo determinar si una de mis actividades está en primer plano
Puede utilizar la intención ACTION_SHUTDOWN
que se emite cuando el teléfono está a punto de apagarse. La documentación dice:
Las aplicaciones normalmente no tendrán que manejar esto, ya que la actividad de primer plano también se detendrá.
En otras palabras, si responde apropiadamente a todos los eventos del ciclo de vida de su Actividad, no es necesario utilizarlo a menos que realmente desee realizar algo específico relacionado con el apagado.
El intento ACTION_SHUTDOWN
se introdujo en el nivel 4 de la API, en otras palabras , sólo se enviará en teléfonos con Android 1.6 o posterior .
Atraparás la emisión con un BroadcastReceiver
. Se verá algo como esto:
public class ShutdownReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //Insert code here } }
También necesitará una entrada en su Manifiesto como el siguiente:
<receiver android:name=".ShutdownReceiver"> <intent-filter> <action android:name="android.intent.action.ACTION_SHUTDOWN" /> </intent-filter> </receiver>
Dependiendo de lo que estés haciendo, otra opción sería utilizar ACTION_BOOT_COMPLETED
intención que se envía cuando se reinicia el teléfono.
Además de ACTION_SHUTDOWN
, debe agregar android.intent.action.QUICKBOOT_POWEROFF
a su filtro de intenciones.
ACTION_SHUTDOWN
no siempre se transmite en algunos dispositivos HTC (por ejemplo, el Evo 4g).
Para ser más específico, si elige Reiniciar, se transmite ACTION_SHUTDOWN
, pero si elige Apagar, se emite en su lugar QUICKBOOT_POWEROFF
.
Para ampliar lo que Dave Webb dijo es la forma adecuada de manejar esto:
Puede anular las funciones del ciclo de vida de la actividad de Android :
protected void onPause(); protected void onResume();
En la mayoría de los escenarios la implementación de estos debe ser suficiente y no requerirá que usted maneje específicamente los eventos de "apagado".
Hay mucha más información en el sitio Web de Android y en la respuesta a esta pregunta sobre el ciclo de vida .
- ScrollView .scroll¿No funciona? Guardar la posición ScrollView en la rotación
- ¿Cuál es la alternativa a getActionView () antes de API level11 en android?