HarmonyOS鸿蒙Next中多个Ability优先启动哪个
HarmonyOS鸿蒙Next中多个Ability优先启动哪个
如何设置那个ability为启动app时的默认页面
2.多个ability同时设置为默认页面,优先启动哪一个
{
"module": {
"name": "bbt_app_entry",
"type": "entry",
"description": "$string:module_desc",
"mainElement": "EntryAbility",
"deviceTypes": [
"phone",
"tablet",
"2in1"
],
"metadata": [
{
"name": "ArkTSPartialUpdate",
"value": "true"
}
],
"deliveryWithInstall": true,
"installationFree": false,
"pages": "$profile:main_pages",
"abilities": [
{
"name": "DeepLinkAbility",
"srcEntry": "./ets/entryability/DeepLinkAbility.ets",
"icon": "$media:startIcon",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:startIcon",
"startWindowBackground": "$color:app_color_705dd5",
"exported": true,
"skills": [
{
"entities": [
"entity.system.browsable",
"entity.system.home"
],
"actions": [
"ohos.want.action.viewData",
"action.system.home"
],
"uris": [
{
"scheme": "https",
"host": "popen.babytree.com",
"port": "443",
"path": "path1"
}
],
"domainVerify": true
}
]
},
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"description": "$string:EntryAbility_desc",
"icon": "$media:startIcon",
"label": "$string:app_name",
"startWindowIcon": "$media:startIcon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
]
}
],
"requestPermissions": [
{
"name": "ohos.permission.INTERNET",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.GET_NETWORK_INFO",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.READ_MEDIA",
"reason": "$string:permission_reason_read_media",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.WRITE_MEDIA",
"reason": "$string:permission_reason_write_media",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.VIBRATE",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.PRIVACY_WINDOW",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.ACCELEROMETER",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
}
]
}
}
更多关于HarmonyOS鸿蒙Next中多个Ability优先启动哪个的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
在HarmonyOS(鸿蒙)Next中,多个Ability的启动优先级由系统根据Ability的类型和配置决定。默认情况下,系统会优先启动MainAbility,因为它是应用的入口Ability,通常在应用的config.json文件中被配置为launchType为standard。如果应用中有多个Ability,且没有显式指定启动顺序,系统会按照Ability的声明顺序进行启动。如果开发者希望指定某个Ability优先启动,可以在config.json中通过设置launchType为standard或singleton来调整启动顺序。singleton类型的Ability在系统中只会存在一个实例,且会被优先启动。
在HarmonyOS鸿蒙Next中,多个Ability的启动优先级取决于开发者配置的意图(Intent)和启动模式。具体规则如下:
- 默认启动:若未指定具体的Ability,系统会根据Intent中的action、category等匹配最适合的Ability启动。
- 显式启动:通过明确指定Ability名称(如
ohos.aafwk.ability.Ability)启动特定Ability。 - 任务栈规则:若目标Ability已在任务栈中,系统会根据启动模式(如
standard、singleTop等)决定是否重新创建实例。
优先级由开发者在配置文件中定义,系统按规则执行。


