diff --git a/zh-cn/application-dev/task-management/background-task-overview.md b/zh-cn/application-dev/task-management/background-task-overview.md index a77cb0c2f1925f2008a72a868fb1a0f09f882512..4eefd27e3e836c51a38fd8a4deb696d9d0f4d889 100644 --- a/zh-cn/application-dev/task-management/background-task-overview.md +++ b/zh-cn/application-dev/task-management/background-task-overview.md @@ -29,6 +29,7 @@ OpenHarmonyå°†åŽå°ä»»åŠ¡åˆ†ä¸ºå››ç§ç±»åž‹ï¼Œå¹¶æ供了一个资æºç”³è¯·çš„ 退到åŽå°çš„应用有ä¸å¯ä¸æ–且çŸæ—¶é—´èƒ½å®Œæˆçš„任务时,å¯ä»¥ä½¿ç”¨çŸæ—¶ä»»åŠ¡æœºåˆ¶ã€‚该机制å…许应用在åŽå°çŸæ—¶é—´å†…完æˆä»»åŠ¡ï¼Œä¿éšœåº”用业务è¿è¡Œä¸å—åŽå°ç”Ÿå‘½å‘¨æœŸç®¡ç†çš„å½±å“。 > **说明:** +> > çŸæ—¶ä»»åŠ¡ä»…针对应用的临时任务æ供资æºä½¿ç”¨ç”Ÿå‘½å‘¨æœŸä¿éšœï¼Œé™åˆ¶å•æ¬¡æœ€å¤§ä½¿ç”¨æ—¶é•¿ä¸º3分钟,全天使用é…é¢é»˜è®¤ä¸º10åˆ†é’Ÿï¼ˆå…·ä½“æ—¶é•¿ç³»ç»Ÿæ ¹æ®åº”用场景和系统状æ€æ™ºèƒ½è°ƒæ•´ï¼‰ã€‚ @@ -45,9 +46,11 @@ OpenHarmonyå°†åŽå°ä»»åŠ¡åˆ†ä¸ºå››ç§ç±»åž‹ï¼Œå¹¶æ供了一个资æºç”³è¯·çš„ - **é…é¢æœºåˆ¶**:为了防æ¢åº”用滥用ä¿æ´»ï¼Œæˆ–者申请åŽä¸å–消,æ¯ä¸ªåº”用æ¯å¤©éƒ½ä¼šæœ‰ä¸€å®šé…é¢ï¼ˆä¼šæ ¹æ®ç”¨æˆ·çš„ä½¿ç”¨ä¹ æƒ¯åŠ¨æ€è°ƒæ•´ï¼‰ï¼Œå…¶ä¸å•æ—¥é…é¢é»˜è®¤ä¸º10分钟,å•æ¬¡é…é¢æœ€å¤§ä¸º3分钟。é…é¢æ¶ˆè€—完就ä¸å†å…许申请çŸæ—¶ä»»åŠ¡ï¼Œæ‰€ä»¥åº”用完æˆçŸæ—¶ä»»åŠ¡åŽåº”立刻å–消延迟挂起,é¿å…消耗é…é¢ã€‚(注:该é…é¢æŒ‡çš„是申请的时长,系统默认应用在åŽå°è¿è¡Œçš„时间ä¸è®¡ç®—在内)。 ## 长时任务 + 长时任务给用户能够直观感å—到的且需è¦ä¸€ç›´åœ¨åŽå°è¿è¡Œçš„业务æä¾›åŽå°è¿è¡Œç”Ÿå‘½å‘¨æœŸçš„ä¿éšœã€‚比如:业务需è¦åœ¨åŽå°æ’放声音ã€éœ€è¦åœ¨åŽå°æŒç»å¯¼èˆªå®šä½ç‰ã€‚æ¤ç±»ç”¨æˆ·å¯ä»¥ç›´è§‚感知到的åŽå°ä¸šåŠ¡è¡Œä¸ºï¼Œå¯ä»¥é€šè¿‡ä½¿ç”¨é•¿æ—¶ä»»åŠ¡å¯¹åº”çš„åŽå°æ¨¡å¼ä¿éšœä¸šåŠ¡åœ¨åŽå°çš„è¿è¡Œï¼Œæ”¯æ’‘应用完æˆåœ¨åŽå°çš„业务。 ### åŽå°æ¨¡å¼åˆ†ç±» + OpenHarmonyæ供了ä¹ç§åŽå°æ¨¡å¼ï¼Œä¾›éœ€è¦åœ¨åŽå°åšé•¿æ—¶ä»»åŠ¡çš„业务使用,具体的åŽå°æ¨¡å¼ç±»åž‹å¦‚下: **表1** 长时任务ç§ç±» @@ -65,6 +68,7 @@ OpenHarmonyæ供了ä¹ç§åŽå°æ¨¡å¼ï¼Œä¾›éœ€è¦åœ¨åŽå°åšé•¿æ—¶ä»»åŠ¡çš„业 | taskKeeping | 计算任务 | æ£åœ¨è¿è¡Œè®¡ç®—任务 | 仅在特定设备生效 | ### é•¿æ—¶ä»»åŠ¡ä½¿ç”¨çº¦æŸ + - 如果用户选择å¯æ„ŸçŸ¥ä¸šåŠ¡ï¼ˆå¦‚æ’音ã€å¯¼èˆªç‰ï¼‰ï¼Œè§¦å‘对应åŽå°æ¨¡å¼ï¼Œåœ¨ä»»åŠ¡å¯åŠ¨æ—¶ï¼Œç³»ç»Ÿä¼šå¼ºåˆ¶å¼¹å‡ºé€šçŸ¥æ醒用户。 - 如果任务结æŸï¼Œåº”用应主动退出åŽå°æ¨¡å¼ã€‚若在åŽå°è¿è¡ŒæœŸé—´ï¼Œç³»ç»Ÿæ£€æµ‹åˆ°åº”用并未使用对应åŽå°æ¨¡å¼çš„资æºï¼Œåˆ™ä¼šè¢«æŒ‚起(Suspend)。 - é¿å…ä¸åˆç†åœ°ç”³è¯·åŽå°é•¿æ—¶ä»»åŠ¡ï¼Œé•¿æ—¶ä»»åŠ¡ç±»åž‹è¦ä¸Žåº”用的业务类型匹é…。如果执行的任务和申请的类型ä¸åŒ¹é…,也会被系统检测到并被挂起(Suspend)。 @@ -72,6 +76,7 @@ OpenHarmonyæ供了ä¹ç§åŽå°æ¨¡å¼ï¼Œä¾›éœ€è¦åœ¨åŽå°åšé•¿æ—¶ä»»åŠ¡çš„业 - 一个AbilityåŒä¸€æ—¶åˆ»åªèƒ½ç”³è¯·è¿è¡Œä¸€ä¸ªé•¿æ—¶ä»»åŠ¡ã€‚如果åŒä¸€æ—¶åˆ»éœ€è¦ç”³è¯·å¤šä¸ªé•¿æ—¶ä»»åŠ¡ï¼Œéœ€è¦åˆ›å»ºå¤šä¸ªAbility,æ¯ä¸ªAbility申请一个长时任务。 ## 延迟任务 + 延迟任务调度给应用æ供一个机制,å…è®¸åº”ç”¨æ ¹æ®ç³»ç»Ÿå®‰æŽ’,在系统空闲时执行实时性è¦æ±‚ä¸é«˜çš„任务,比如设备空闲时候åšä¸€æ¬¡æ•°æ®å¦ä¹ ç‰åœºæ™¯ã€‚å½“åº”ç”¨ç”³è¯·å»¶è¿Ÿä»»åŠ¡çš„æ—¶å€™ï¼Œä»»åŠ¡ä¼šè¢«æ”¾å…¥å¾…è°ƒåº¦é˜Ÿåˆ—ï¼Œç³»ç»Ÿä¼šæ ¹æ®å½“å‰çŠ¶æ€ï¼Œå¦‚内å˜ã€åŠŸè€—ã€æ¸©åº¦ç‰ç»Ÿä¸€å†³ç–最优的调度时机。åŒæ—¶æ”¯æŒä»»åŠ¡çš„æŒä¹…化,应用退出或者设备é‡å¯ï¼Œè®¾ç½®çš„任务åŒæ ·èƒ½å¤Ÿè¢«è§¦å‘。 ### å»¶è¿Ÿä»»åŠ¡è°ƒåº¦çº¦æŸ @@ -102,16 +107,18 @@ OpenHarmonyæ供了ä¹ç§åŽå°æ¨¡å¼ï¼Œä¾›éœ€è¦åœ¨åŽå°åšé•¿æ—¶ä»»åŠ¡çš„业 - æºå¸¦å‚æ•°ä¿¡æ¯æ”¯æŒnumberã€stringã€bool三ç§ç±»åž‹ã€‚ ## ç”³è¯·èƒ½æ•ˆèµ„æº + 供系统应用使用的能效资æºå¯ä»¥åˆ†ä¸ºä¸¤ç±»ï¼šè½¯ä»¶èµ„æº(WORK_SCHEDULER, COMMON_EVENT, TIMER),硬件资æº(CPU, GPS, BLUETOOTH, AUDIO)。 应用申请ä¸åŒçš„能效资æºåŽå¯ä»¥æ‰§è¡Œç›¸åº”çš„æ“作: * 申请CPU资æºåŽå¯ä»¥ä¸è¢«æŒ‚起,直到任务完æˆã€‚ * 申请WORK_SCHEDULER资æºåŽä¸å—延迟任务执行频率约æŸï¼Œä¸”ä»»åŠ¡æ‰§è¡Œæ—¶é—´å¢žåŠ ã€‚ - * 申请COMMON_EVENT资æºåŽï¼Œåº”用在åŽå°å¤„于挂起状æ€æ—¶ï¼Œä»ç„¶èƒ½å¤ŸæŽ¥æ”¶åˆ°ç³»ç»Ÿå…¬å…±äº‹ä»¶ï¼Œç”³è¯·TIMER资æºåŽï¼Œåº”用能够使用定时器执行精确定时任务。 + * 申请COMMON_EVENT资æºåŽï¼Œåº”用在åŽå°å¤„于挂起状æ€æ—¶ï¼Œä»ç„¶èƒ½å¤ŸæŽ¥æ”¶åˆ°ç³»ç»Ÿå…¬å…±äº‹ä»¶ã€‚ + * 申请TIMER资æºåŽï¼Œåº”用能够使用定时器执行精确定时任务。 * 申请资æºï¼ˆGPS, BLUETOOTH, AUDIO)åŽï¼Œåº”用在åŽå°è¢«æŒ‚èµ·åŽï¼Œä¾ç„¶èƒ½å¤Ÿè¢«ç®¡ç†ç›¸å…³ç¡¬ä»¶çš„æœåŠ¡å”¤é†’,执行相应的任务。 -**表1** 能效资æºç§ç±» +**表2** 能效资æºç§ç±» | å‚æ•°å | å‚数值 | æè¿° | | -------------- | ---- | ------------------- | @@ -124,6 +131,7 @@ OpenHarmonyæ供了ä¹ç§åŽå°æ¨¡å¼ï¼Œä¾›éœ€è¦åœ¨åŽå°åšé•¿æ—¶ä»»åŠ¡çš„业 | AUDIO | 64 | 音频资æºï¼Œç”³è¯·åŽæŒ‚起状æ€ä¸‹ä¸è¢«ä»£ç†æŽ‰ | ### 能效资æºä½¿ç”¨çº¦æŸ + - 能效资æºç”³è¯·æˆ–者释放å¯ä»¥ç”±è¿›ç¨‹æˆ–者应用å‘起,由应用å‘起的资æºé‡Šæ”¾ä¼šé‡Šæ”¾å±žäºŽå®ƒçš„åŒç±»åž‹çš„所有资æºï¼ŒåŒ…括进程申请的资æºã€‚例如应用申请了CPU资æº,进程申请了CPUå’ŒWORK_SCHEDULER资æºï¼Œå½“应用释放CPU资æºçš„时候,会将进程的CPU资æºä¸€åŒé‡Šæ”¾ï¼ŒåŒæ—¶ä¸åŒç±»åž‹çš„WORK_SCHEDULER资æºä¸å—å½±å“。由进程å‘起的资æºé‡Šæ”¾å¯¹åº”用申请的资æºæ²¡æœ‰å½±å“,例如当应用和进程åŒæ—¶ç”³è¯·äº†CPU,进程å‘起了CPU资æºé‡Šæ”¾ï¼Œåº”用的CPU资æºä¸ä¼šè¢«é‡Šæ”¾ã€‚ - åŒæ—¶ç”³è¯·åŒä¸€ç±»æŒä¹…资æºå’ŒéžæŒä¹…资æºï¼ŒæŒä¹…资æºä¼šè¦†ç›–éžæŒä¹…资æºï¼Œåœ¨è¶…时时ä¸ä¼šé‡Šæ”¾èµ„æºã€‚例如应用首先申请了10sçš„CPU资æºï¼Œç„¶åŽåœ¨ç¬¬5s的时候申请了æŒä¹…çš„CPU资æºï¼Œé‚£ä¹ˆèµ„æºä¼šå˜æˆæŒä¹…的,éžæŒä¹…çš„CPU资æºè®°å½•ä¼šè¢«æŒä¹…化的CPU资æºè®°å½•è¦†ç›–,到了第10s的时候资æºä¸ä¼šè¢«é‡Šæ”¾ï¼Œå¦‚果在第8s的时候æå‰é‡Šæ”¾äº†èµ„æºï¼Œé‚£ä¹ˆä¼šå°†CPU资æºé‡Šæ”¾ï¼Œæ— 法å•ç‹¬é‡Šæ”¾å…¶ä¸éžæŒä¹…的或者æŒä¹…çš„CPU资æºã€‚ - WORK_SCHEDULER资æºåªèƒ½ç”±åº”用申请和释放,ä¸èƒ½ç”±è¿›ç¨‹ç”³è¯·å’Œé‡Šæ”¾ã€‚