¿Hay alguna manera de recibir una notificación cuando se enciende el usuario cierra el dispositivo?

StackOverflow https://stackoverflow.com/questions/2190126

  •  25-09-2019
  •  | 
  •  

Pregunta

Necesito saber cuando las potencias de los usuarios de su / su teléfono. ¿Hay emisiones (o similar) que notifica cuándo el teléfono del usuario está apagado?

¿Fue útil?

Solución

Puede utilizar el ACTION_SHUTDOWN Intención que se emite cuando el teléfono está a punto de parada. La documentación dice:

  

Aplicaciones normalmente no tenga que manejar esto, ya que la actividad de primer plano se detendrá también.

En otras palabras, si usted responde a todos los eventos del ciclo de vida para su actividad de forma adecuada, no hay necesidad de usar no ser que realmente quiere hacer algo específico relacionado con el apagado.

La Intención ACTION_SHUTDOWN fue introducida en la API de nivel 4, es decir Sólo será enviado en los teléfonos con Android 1.6 o posterior .

Usted trampa de 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 debes 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>

En función de lo que está haciendo, otra opción sería utilizar el ACTION_BOOT_COMPLETED Intención que se envía cuando el teléfono se reinicie.

Otros consejos

Además de ACTION_SHUTDOWN, se debe añadir android.intent.action.QUICKBOOT_POWEROFF a su intención de filtro.
ACTION_SHUTDOWN no siempre se transmite en algunos dispositivos de HTC (por ejemplo, el Evo 4G).
Para ser más específicos, si lo desea reiniciar, ACTION_SHUTDOWN se emite, pero si elige Apagado, QUICKBOOT_POWEROFF se emite en su lugar.

Para ampliar lo que dijo Dave Webb es la manera adecuada de manejar esto:

Puede anular las funciones de Android Actividad del ciclo de vida

protected void onPause();
protected void onResume();

En la mayoría de los escenarios de la aplicación de estos deben ser suficientes y no requerirán que usted resuelva expresamente el "apagado" eventos.

Hay un montón de información más en la sitio web y Android en la respuesta a este ciclo de vida cuestión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top