Buscar..


Observaciones

El modo Doze es un conjunto de cambios y reglas que ponen su teléfono en suspensión cuando está inactivo.

En Android 6.0 Marshmallow: el modo Doze se activa después de un tiempo en que la pantalla está apagada, el dispositivo está parado y funciona con batería. Modo Doze en Marshmallow Como puede ver en el diagrama anterior, cuando se activa el Modo Doze, el dispositivo no recibe ningún wakelocks, acceso a la red, trabajos / sincronizaciones, alarmas, GPS / Wi-Fi.

En Android 7.0 Nougat: imagínese si su teléfono está en su bolsillo (la pantalla está apagada, se está quedando sin batería, pero no está estacionada) es posible que también desee obtener las funciones del modo Doze, ¿verdad? Por eso es que Google anunció el Modo Doze extendido: se ejecuta cuando la pantalla está apagada, pero no estacionaria. Modo Doze en Turrón Como puede ver en este diagrama, solo el Acceso a la red y los trabajos / sincronizaciones están deshabilitados. Tenga en cuenta que el Doze extendido no reemplaza el primer Modo Doze. Trabajan juntos, dependiendo del estado del teléfono (estacionario o no). Aquí están las distinciones: Distinciones del modo Doze Los desarrolladores deben ser conscientes de que:

  • Doze puede mantener el acceso temporal a wakelock y a la red para mensajes GCM (Google Cloud Messaging) de alta prioridad (para casos donde el usuario necesita una notificación inmediata);
  • Los servicios de primer plano (como la reproducción de música) continuarán funcionando.

Puede encontrar más información aquí: https://developer.android.com/training/monitoring-device-state/doze-standby.html

Excluir la aplicación del uso del modo dormido

  1. Abrir la configuración del teléfono
  2. batería abierta
  3. Abre el menú y selecciona "optimización de batería".
  4. En el menú desplegable, seleccione "Todas las aplicaciones".
  5. Selecciona la aplicación que deseas incluir en la lista blanca.
  6. seleccione "no optimizar"

Ahora esta aplicación se mostrará bajo aplicaciones no optimizadas.

Una aplicación puede verificar si está en la lista blanca llamando a isIgnoringBatteryOptimizations()

Lista blanca de una aplicación de Android mediante programación

La lista blanca no deshabilitará el modo de inactividad de su aplicación, pero puede hacerlo mediante el uso de la red y los bloqueos de retención / activación.

La lista blanca de una aplicación de Android se puede hacer mediante programación de la siguiente manera:

boolean isIgnoringBatteryOptimizations = pm.isIgnoringBatteryOptimizations(getPackageName());
if(!isIgnoringBatteryOptimizations){
    Intent intent = new Intent();
    intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
    intent.setData(Uri.parse("package:" + getPackageName()));
    startActivityForResult(intent, MY_IGNORE_OPTIMIZATION_REQUEST);
}

El resultado del inicio de la actividad anterior se puede verificar mediante el siguiente código:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == MY_IGNORE_OPTIMIZATION_REQUEST) {
        PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
        boolean isIgnoringBatteryOptimizations = pm.isIgnoringBatteryOptimizations(getPackageName());
        if(isIgnoringBatteryOptimizations){
            // Ignoring battery optimization
        }else{
           // Not ignoring battery optimization
        }
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow