¿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?

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 .

  • Actualización del componente UI de actividad de Broadcast Receiver?
  • ¿Por qué mi Broadcast Receiver no recibe las acciones de difusión del sistema?
  • Descartar la notificación de Android en curso mediante el botón de acción sin abrir la aplicación
  • Android - BroadcastReceiver unregisterReceiver issue (not registered)
  • Android Whatsapp Inicio de llamada Receptor de difusión
  • Recepción de llamadas entrantes no funciona (Android 4.1)
  • Excepción extraña de "Receptor no registrado"
  • Registrar programáticamente un receptor de difusión
  • Android.intent.action.SCREEN_ON no funciona como filtro de intenciones de recepción
  • DetectedActivityFence no desencadenar?
  • Compruebe si el broadcstreceiver está registrado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.