¿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?
- Usando getWindowManager () dentro de BroadcastReceiver
- Receptores de difusión de Android vs aidl
- El receptor de la difusión para comprobar la conexión a internet se llama dos veces cuando desconecto el wifi
- Receptor de alarma y el manifiesto de Android
- ¿Cuál es el valor entero que da prioridad a un receptor de difusión?
- Utilizar el receptor de difusión para capturar la llamada entrante, onReceive no activado?
- BroadcastReceiver intentando devolver el resultado durante una transmisión no ordenada. Error extraño
- Android BootReceiver no funciona
- API de geocodificación de Android BroadcastReceiver no activado
- No se puede encontrar todos los dispositivos bluetooth android
- ¿Cómo se puede detectar el lanzamiento de una aplicación de Android?
- Cómo crear una intención pendiente dentro de una clase BroadcastReceiver?
- Transmisión de Android del servicio a la actividad
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?