son segundo qué plano las bateria aplicaciones ahorrar actualizar actualizaciones actualizacion actividad ios foreground

ios - qué - aplicaciones en segundo plano



iOS ¿cómo juzgar la aplicación se ejecuta en primer plano o en segundo plano? (2)

Hay casos en los que verificar el estado no funciona.

Aquí hay uno que encontré: si intenta usar BT y está desactivado, iOS abrirá un cuadro de diálogo que le preguntará si el usuario desea activar BT. Cuando esto sucede, el estado de la aplicación no es una forma confiable de determinar si su aplicación está en primer plano.

En primer lugar, obtendrá dos eventos ApplicationDidBecomeActive: uno (correctamente) cuando aparece la aplicación y luego otro (incorrectamente) después de que el usuario presione el botón en el cuadro de diálogo (aunque la configuración de iOS es la aplicación más avanzada).

UIApplication.applicationState dirá "Activo" aunque este no sea el caso (al menos si interpreta "activo" como si estuviera en primer plano, como era la pregunta original).

Como no obtienes willEnterForeground en el primer lanzamiento, la única forma confiable de detectar si la aplicación es visible o no (por lo que he podido averiguar) es tener una bandera y luego configurarla como verdadera en:

applicationDidFinishLaunching applicationWillEnterForeground

y falso en:

applicationDidEnterBackground applicationWillResignActive

Como todos sabemos, si una aplicación iOS se está ejecutando en primer plano, la aplicación no notificará a los usuarios cuando llegue la notificación de eliminación. Ahora, en mi aplicación, quiero mostrar una alerta para notificar a los usuarios que llega una notificación remota. ¿Cómo juzgar si la aplicación se está ejecutando en primer plano o en segundo plano? Encontré los documentos y busqué en stackoverflow.com y no pude encontrar nada sobre eso. Gracias.


[UIApplication sharedApplication].applicationState devolverá el estado actual, verificará los valores posibles y no creará [UIApplication sharedApplication].applicationState innecesarias cuando pueda usar las características del sistema.

Valores que tal vez quiera considerar:

  • UIApplicationStateActive
  • UIApplicationStateInactive
  • UIApplicationStateBackground

p.ej

+(BOOL) runningInBackground { UIApplicationState state = [UIApplication sharedApplication].applicationState; return state == UIApplicationStateBackground; } +(BOOL) runningInForeground { UIApplicationState state = [UIApplication sharedApplication].applicationState; return state == UIApplicationStateActive; }