Introducción al modelo de etapa HarmonyOS3

El modelo Stage es un modelo agregado recientemente en HarmonyOS 3.1 Developer Preview (API 9), y también es el modelo que HarmonyOS promueve principalmente y evolucionará durante mucho tiempo. En este modelo, debido a que AbilityStage, WindowStage y otras clases se proporcionan como la "etapa" de los componentes de la aplicación y las ventanas de Windows, este modelo de aplicación se denomina modelo Stage. Este libro también presenta principalmente el método de desarrollo basado en el modelo Stage.

Idea de diseño del modelo de escenario.

La razón por la que el modelo Stage se convirtió en el principal modelo de promoción se debe a su idea de diseño. El diseño del modelo Stage se basa en los siguientes tres puntos de partida.

1. Diseñado para aplicaciones complejas

Simplifique la complejidad de la aplicación:

  • Varios componentes de la aplicación comparten la misma instancia del motor ArkTS (máquina virtual que ejecuta el lenguaje ArkTS), y los componentes de la aplicación pueden compartir fácilmente objetos y estados, al tiempo que reducen el uso de memoria de aplicaciones complejas.
  • El método de desarrollo orientado a objetos hace que los códigos de aplicaciones complejos sean muy legibles, fáciles de mantener y altamente escalables.

2. Admite formularios multidispositivo y multiventana

La gestión de componentes de la aplicación y la gestión de ventanas están desacopladas a nivel arquitectónico:

  • Es conveniente que el sistema corte los componentes de la aplicación (las ventanas se pueden cortar para dispositivos sin pantalla).
  • Es conveniente que el sistema expanda el formulario de la ventana.
  • En múltiples dispositivos (como computadoras de escritorio y móviles), los componentes de la aplicación pueden usar el mismo conjunto de ciclos de vida.

3. Equilibrar las capacidades de las aplicaciones y los costos de control y gestión del sistema.

El modelo Stage redefine los límites de las capacidades de las aplicaciones y equilibra las capacidades de las aplicaciones y los costos de control y gestión del sistema.

  • Proporcione componentes de aplicación para escenarios específicos (como tarjetas y métodos de entrada) para satisfacer más escenarios de uso.
  • Gestión estandarizada de procesos en segundo plano: para garantizar la experiencia del usuario, el modelo Stage gestiona los procesos de aplicaciones en segundo plano de manera ordenada. Las aplicaciones no pueden residir en segundo plano a voluntad y el comportamiento en segundo plano de las aplicaciones se gestiona estrictamente para evitar comportamientos maliciosos de las aplicaciones.

Ciclo de vida de la capacidad del modelo Stage.

Durante el uso de Habilidad, habrá varios estados del ciclo de vida. Dominar el ciclo de vida de Ability es muy importante para el desarrollo de aplicaciones.

Para lograr la personalización de múltiples dispositivos y la escalabilidad de múltiples ventanas, el sistema desacopla la administración de componentes y la administración de ventanas. El ciclo de vida de Ability incluye cuatro estados: Crear, Primer plano, Fondo y Destruir. WindowStageCreate y WindowStageDestroy son dos devoluciones de llamada del ciclo de vida para que el administrador de ventanas (WindowStage) administre las funciones de la interfaz de usuario en Ability, logrando así un acoplamiento débil entre Ability y Windows. como muestra la imagen.

Modo de inicio de habilidad del modelo Stage.

El modo de inicio de una Habilidad se refiere a los diferentes estados de presentación de una instancia de Habilidad al inicio. Para diferentes escenarios comerciales, el sistema proporciona tres modos de inicio:

  • singleton (modo de instancia única)
  • estándar (modo de instancia estándar)
  • especificado (modo de instancia especificado)

1. Modo de inicio singleton

singleton es el modo de inicio predeterminado.

Cada vez que se llama al método startAbility(), si ya existe una instancia de Ability de este tipo en el proceso de solicitud, se reutilizará la instancia de Ability en el sistema. Sólo hay una instancia de esta Habilidad en el sistema, es decir, solo hay una instancia de este tipo de Habilidad en la lista de tareas recientes. En este punto, se ha creado la instancia de Ability de la aplicación. Cuando se llama nuevamente al método startAbility() para iniciar la instancia de Ability, solo se ingresará la devolución de llamada onNewWant() de Ability, y sus devoluciones de llamada del ciclo de vida onCreate() y onWindowStageCreate() no ser ingresado.

Si necesita utilizar el modo de inicio singleton, configure el campo "launchType" en el archivo de configuración module.json5 como "singleton".

{
    
    
   "module": {
    
    
     // ...
     "abilities": [
       {
    
    
         "launchType": "singleton",
         // ...
       }
     ]
  }
}

2. Modo de inicio estándar

En el modo de inicio estándar, cada vez que se llama al método startAbility(), se creará una nueva instancia de este tipo de Habilidad en el proceso de solicitud. Es decir, puedes ver múltiples instancias de Habilidad de este tipo en la lista de tareas recientes. En este caso, Ability se puede configurar de serie.

Para desarrollar y utilizar el modo de inicio estándar, configure el campo "launchType" en el archivo de configuración module.json5 como "estándar".

3. Modo de inicio especificado

En el modo de inicio especificado, antes de crear la instancia de Ability, el desarrollador puede crear una clave de cadena única para la instancia. Después de que la instancia de Ability creada esté vinculada a la clave, se le preguntará a la aplicación cuál usar cada vez que se Se llama al método startAbility () y la instancia de Ability correspondiente a la clave responde a la solicitud de startAbility. En tiempo de ejecución, el negocio interno de Ability decide si se crean varias instancias. Si la clave de la instancia de Ability coincide, la instancia de Ability vinculada a ella se extraerá directamente; de ​​lo contrario, se creará una nueva instancia de Ability.

Por ejemplo, cuando un usuario abre repetidamente el mismo documento en la aplicación, siempre se inicia la misma tarea en la lista de tareas recientes. Y al crear repetidamente nuevos documentos en la aplicación, se inician las nuevas tareas en la lista de tareas recientes. En este caso, Ability se puede configurar como se especifica. Cuando se vuelve a llamar al método startAbility() para iniciar la instancia de Ability, y la devolución de llamada onAcceptWant() de AbilityStage coincide con una instancia de Ability creada. En este momento, cuando Ability se inicie nuevamente, solo se ingresará la devolución de llamada onNewWant () de Ability, y no se ingresarán sus devoluciones de llamada de ciclo de vida onCreate () y onWindowStageCreate ().

Para desarrollar y utilizar el modo de inicio especificado, configure el campo "launchType" en el archivo de configuración module.json5 como "especificado".

Referencias

おすすめ

転載: blog.csdn.net/kkkloveyou/article/details/131049362