¿Qué pasó con la terminación automática?

En Mac OS X Lion (10.7), Apple introdujo una característica llamada "Terminación automática" en la que las aplicaciones se cerrarían automáticamente después de un time de inactividad.

Personalmente, solo vi esto trabajando con Vista previa y algunas otras aplicaciones. Ni Apple ni los desarrolladores de terceros parecían adoptarlo demasiado. Y en los últimos años, no he visto ni una sola aplicación cerrar automáticamente, ni siquiera Vista previa.

Mi pregunta es, ¿qué pasó con esta function? ¿Todavía existe? ¿Los desarrolladores lo usan? ¿Y por qué los propios Apple dejaron de usarlo en sus aplicaciones?

  • Deshabilitar antialiasing inducido por desplazamiento en Vista previa y otras aplicaciones PDF
  • Los files PDF se ven diferentes en Yosemite Preview.app
  • ¿Cómo puedo rotar mis imágenes directamente desde el buscador?
  • Vista previa de macOS tiene falla gráfica al copyr utilizando selección rectangular
  • Divida un file PDF grande en tres partes en una Mac
  • Vídeos de vista previa de aplicaciones de iOS: son todas las 3 resoluciones de iPhone requeridas
  • ¿Cómo ir a la última location en el file pdf abierto en la aplicación de vista previa de mac?
  • ¿Dónde está el button Editar barra de herramientas en la aplicación de vista previa?
  • 2 Solutions collect form web for “¿Qué pasó con la terminación automática?”

    La terminación automática sigue siendo parte de macOS. Cuando se implementa correctamente, no debería verlo en acción.

    Para descubrir qué aplicaciones conocen sobre Terminación automática, emita el siguiente command en Terminal.app :

    grep -r NSSupportsAutomaticTermination /Applications 

    Requiere más código

    El soporte de la Terminación Automática requiere un esfuerzo adicional y frecuentemente involucrado del desarrollador de la aplicación.

    La aplicación necesita tratar con un entorno en el que se podría exigir que abandone (casi) en cualquier momento; eso significa poder save y restablecer el estado rápidamente, sin interacción del usuario, y en (casi) cualquier momento:

    La terminación automática es una function que debe codificar explícitamente en su aplicación. Es fácil declarar el soporte para la terminación automática, pero las aplicaciones también necesitan trabajar con el sistema para save el estado actual de su interfaz de usuario para que pueda ser restaurada más tarde según sea necesario. El sistema puede matar el process subyacente de una aplicación autodeterminable en cualquier momento, por lo que save esta información mantiene la continuidad de la aplicación. Por lo general, el sistema elimina el process subyacente de una aplicación poco time después de que el usuario ha cerrado todas las windows de la aplicación. Sin embargo, el sistema también puede matar una aplicación con windows abiertas si la aplicación no se encuentra actualmente en la pantalla, tal vez porque el usuario la ocultó o cambió de espacio.

    Pregunta a Apple

    Por qué Apple parece haber eliminado el soporte de algunas de sus aplicaciones en OS X 10.11 es una pregunta que se dirige mejor a Apple .

    Una cuestión de prioridades

    Cualquiera que escriba aplicaciones Mac debe juzgar si esta es una característica que vale la pena implementar y si ese time de ingeniería se gasta mejor en otro lugar. Esto siempre será una cuestión de juicio para el desarrollador, por lo que sospecho que su pregunta nunca podrá ser definitivamente respondida.

    Dile a los desarrolladores

    Si tiene aplicaciones que desea admitir la Terminación automática, cuéntele a los desarrolladores de la aplicación. Si suficientes clientes valoran la Terminación Automática, los desarrolladores tomarán el time para implementarla.

    La respuesta de Graham Miln es muy completa, solo me quedan algunas notas que me gustaría agregar:

    1) Una aplicación puede admitir la terminación automática o la terminación repentina o incluso ambas . La diferencia entre estos dos es: con la terminación automática, el sistema puede salir de la aplicación "a voluntad", pero lo abandonará "normalmente" (como si eligiera salir de <AppName> menu <AppName> ), permitiendo que la aplicación realice algo de trabajo al salir, para que pueda restablecerse en ese estado cuando se vuelva a abrir. Con Sudden Termination, el sistema puede "matar" la aplicación "a voluntad" sin posibilidad de que la aplicación realice ninguna acción antes de morir, ya que morirá al instante, lo que es mucho más rápido.

    2) Las aplicaciones pueden admitir cualquier forma de finalización sin declararlo en su file Info.plist , por lo que grep no enumera una aplicación no significa que la aplicación no admitirá ninguna function. En realidad, la input Info.plist solo cambia el comportamiento pnetworkingeterminado de una aplicación. El comportamiento pnetworkingeterminado es no admitir ninguno, a less que el código habilite uno de forma explícita. Cuando se declara en su file Info.plist , el comportamiento es al revés: la function declarada está habilitada de manera pnetworkingeterminada, a less que el código la deshabilite explícitamente.

    3) La razón para controlar estas características en el código es que solo la aplicación puede saber si realmente está realmente inactiva o si realmente espera que ocurra algún evento y, por lo tanto, no debe morir en este momento. Por lo tanto, una aplicación puede desconectarse temporalmente mientras espera que ocurra algo o procesar algunos datos internamente y luego volverlos a activar una vez hecho.

    4) En ambos casos, el sistema decide cuándo finalizar una aplicación y cuándo no ("a voluntad") y, en muchos casos, el sistema simplemente no quiere, ya que no tiene ninguna razón para hacerlo. Por ejemplo, si el sistema se queda sin memory, searchá agresivamente aplicaciones que puedan finalizar para liberar memory rápidamente para aquellas que continuarán ejecutándose pero mientras no haya escasez, ¿qué ventaja tendría para el sistema matar estas aplicaciones? La próxima vez que los use, solo deben reiniciarse, lo que supone un desperdicio del time de procesamiento cuando no había motivos para abandonarlos en primer lugar. Y la escasez de memory no está definida por la cantidad de memory libre que tiene (no tiene escasez solo porque toda la memory parece estar en uso) sino por la llamada "presión de memory". Activity Monitor puede mostrarle la presión de memory de su sistema. Entonces, solo porque una aplicación admite cualquiera de las dos forms de terminación, no se dice que el sistema realmente haga uso de esa característica.

    5) Con la introducción de los services XPC en 10.8, algunas aplicaciones comenzaron a utilizar estos pequeños ayudantes para realizar sus tareas de procesamiento. Los services XPC soportan implícitamente la terminación repentina. A pesar de pertenecer a una aplicación, XPC Services no muestra ninguna UI (y no aparece en Dock), por lo que no se dará count cuándo se inician y cuándo se terminan. Esto significa que en lugar de tener el sistema terminando toda la aplicación para ahorrar resources, las aplicaciones de resources intensivos pueden usar XPC Services y el sistema terminará estos services XPC si es necesario, lo que a menudo hace innecesario que la aplicación soporte cualquier forma de terminación como la terminación del service. la aplicación apenas ahorrará al sistema una gran cantidad de resources si el uso principal de los resources es causado por los Servicios XPC de esa aplicación.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).