目录

如何监听应用主动终止进程或用户主动清理

问题现象

在统计当前APP使用时长,或者应用退出时清理应用发布的通知消息等场景下,需要关注应用何时关闭退出(应用主动终止进程或者用户主动清理两大类场景),涉及的事件有哪些,如何监听?

背景知识

解决方案

常见FAQ

Q:terminateSelf()和killAllProcesses()两个函数都能主动退出应用,这两种方式有什么区别?

A:UIAbilityContext下的terminateSelf是走UIAbility的正常生命周期,正常销毁;ApplicationContext下的killAllProcesses是找出应用下面所有的进程,逐个终止,属于强制终止。

Q:为什么使用terminateSelf()后还能在最近任务列表中仍然能查看到该实例对应的任务?

A:调用terminateSelf()方法停止当前UIAbility实例时,默认会保留该实例的快照(Snapshot),即在最近任务列表中仍然能查看到该实例对应的任务。如不需要保留该实例的快照,可以在其对应UIAbility的module.json5配置文件中,将abilities标签的removeMissionAfterTerminate字段配置为true。