1e41f4b71Sopenharmony_ci# Component Startup Rules (FA Model) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ciComponent startup refers to the behavior of starting or connecting to an application component. 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci- Start the PageAbility and ServiceAbility. For example, you can use **startAbility()**. 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci- Connect to the ServiceAbility and DataAbility. For example, you can use **connectAbility()** and **acquireDataAbilityHelper()**. 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ciTo deliver a better user experience, the system restricts the following behavior: 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci- A background application randomly displays a dialog box, such as an ad pop-up. 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci- Background applications wake up each other. This type of behavior occupies system resources and increases power consumption, or even causes system frozen. 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci- A foreground application randomly redirects to another application, for example, redirecting to the payment page of another application. This type of behavior poses security risks. 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci 22e41f4b71Sopenharmony_ciIn view of this, the system formulates a set of component startup rules, as follows: 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci- **Before starting a component of another application, verify the visible field of the target component.** 26e41f4b71Sopenharmony_ci - This rule applies only to cross-application scenarios. 27e41f4b71Sopenharmony_ci - If the **visible** field of the target component is **false**, verify the **ohos.permission.START_INVISIBLE_ABILITY** permission, which is available only for system applications. 28e41f4b71Sopenharmony_ci - For details about the **visible** field, see [Internal Structure of the abilities Attribute](../quick-start/module-structure.md#internal-structure-of-the-abilities-attribute). 29e41f4b71Sopenharmony_ci 30e41f4b71Sopenharmony_ci- **Before starting a component of a background application, verify the BACKGROUND permission.** 31e41f4b71Sopenharmony_ci > **NOTE** 32e41f4b71Sopenharmony_ci > 33e41f4b71Sopenharmony_ci > Applications developed using the SDK of API version 8 or earlier are not restricted by this restriction when starting the ServiceAbility or DataAbility. 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci - An application is considered as a foreground application only when the application process gains focus or its UIAbility component is running in the foreground. 36e41f4b71Sopenharmony_ci - Verify the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission, which is available only for system applications. 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_ci- **Before starting the ServiceAbility or DataAbility component of an application, verify the AssociateWakeUp field of the target application.** 39e41f4b71Sopenharmony_ci - This rule applies only to cross-application scenarios. 40e41f4b71Sopenharmony_ci - This rule is valid only when the target component is ServiceAbility or DataAbility. 41e41f4b71Sopenharmony_ci - The ServiceAbility and DataAbility of an application can be accessed by other applications only when **AssociateWakeUp** of the target application is set to **true**. 42e41f4b71Sopenharmony_ci - The **AssociateWakeUp** field can be configured only for preset applications. For other applications, this field is set to **false** by default. 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci> **NOTE** 46e41f4b71Sopenharmony_ci> 1. Component startup control has been implemented since v3.2 Release. 47e41f4b71Sopenharmony_ci> 48e41f4b71Sopenharmony_ci> 2. The new component startup rules are more strict than the original ones. Get familiar with the new startup rules to prevent service exceptions. 49e41f4b71Sopenharmony_ci 50e41f4b71Sopenharmony_ci 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ci## Intra-Device Component Startup Rules 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci The rules for starting components on the same device vary in the following scenarios: 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci- Starting a PageAbility 58e41f4b71Sopenharmony_ci 59e41f4b71Sopenharmony_ci- Starting a ServiceAbility or DataAbility 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci 63e41f4b71Sopenharmony_ci 64e41f4b71Sopenharmony_ci## Inter-Device Component Startup Rules 65e41f4b71Sopenharmony_ci 66e41f4b71Sopenharmony_ci The rules for starting components on a different device vary in the following scenarios: 67e41f4b71Sopenharmony_ci 68e41f4b71Sopenharmony_ci- Starting a PageAbility 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci- Starting a ServiceAbility 71e41f4b71Sopenharmony_ci 72e41f4b71Sopenharmony_ci 73