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![startup-rule](figures/component-startup-inner-fa.png)
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![component-startup-rules](figures/component-startup-inter-fa.png)
73