android - restauro - reiniciar dispositivo
¿Hay alguna forma de recibir una notificación cuando el usuario apaga el dispositivo? (3)
Además de ACTION_SHUTDOWN
, debe agregar android.intent.action.QUICKBOOT_POWEROFF
a su filtro de intención.
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 transmitirá ACTION_SHUTDOWN
, pero si elige Apagar, se transmitirá QUICKBOOT_POWEROFF
.
Necesito saber cuándo el usuario apaga su teléfono. ¿Hay alguna emisión (o similar) que notifique cuando el teléfono del usuario está apagado?
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 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 del ciclo de vida .
Puede usar la intención ACTION_SHUTDOWN
que se transmite cuando el teléfono está a punto de apagarse. La documentación dice:
Normalmente, las aplicaciones no necesitarán manejar esto, ya que la actividad en primer plano también se detendrá.
En otras palabras, si responde adecuadamente a todos los eventos del ciclo de vida de su actividad, no es necesario que lo use a menos que realmente desee hacer algo específico relacionado con el apagado.
La intención ACTION_SHUTDOWN
se introdujo en el nivel 4 de la API, en otras palabras , solo se enviará en teléfonos con Android 1.6 o posterior .
Atrapará la transmisió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 la siguiente:
<receiver android:name=".ShutdownReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_SHUTDOWN" />
</intent-filter>
</receiver>
Dependiendo de lo que esté haciendo, otra opción sería usar el ACTION_BOOT_COMPLETED
Intent que se envía cuando se reinicia el teléfono.