一、短时任务
传送门
1.为什么使用短时任务
- 应用退至后台一小段时间后,应用进程会被挂起,无法执行对应的任务。如果应用在后台仍需要执行耗时不长的任务,如状态保存等,可以通过本文申请短时任务,扩展应用在后台的运行时间。
2.短时任务限制
- 应用需要在前台或onBackground回调内,申请短时任务,否则会申请失败。
- 一个应用同一时刻最多申请3个短时任务。
- 同一个应用由一定的短时任务配额
- 每天的总时长是 10min
- 单次配额最大为3分钟
- 低电量时单次配额默认为1分钟
- 配额消耗完后不允许再申请短时任务
- 配额计算
- 如果你中间切换回来前台, 那么不计算时间,再次退出到后台的时候, 再次累计时间
- 同一个应用下的同一个时间段的短时任务,不重复计时
- 主要用到的Api
- requestSuspendDelay( 申请短时任务 )
- getRemainingDelayTime( 获取短时任务配额剩余时间 )
- cancelSuspendDelay( 取消短时任务 )
3.申请短时任务
async shortTermTasks() {
try {
console.log(' => 点击了事件')
const delayInfo = backgroundTaskManager.requestSuspendDelay('测试短时任务', () => {
console.log(' => 短时任务马上就要到期了')
console.log(' delayInfo => ', JSON.stringify(delayInfo))
backgroundTaskManager.cancelSuspendDelay(delayInfo.requestId)
})
const res = await downloadFile()
if(!res){
backgroundTaskManager.cancelSuspendDelay(delayInfo.requestId)
return;
}
console.log(' => 耗时计算任务完成')
backgroundTaskManager.cancelSuspendDelay(delayInfo.requestId)
} catch (e) {
backgroundTaskManager.cancelSuspendDelay(delayInfo.requestId)
}
}