BearPi-HM_Micro openharmony的系统是3.0的小型系统使用的c++UI代码为bearpi-hm_micro_small/foundation/aafwk/aafwk_lite下的接口,lite为轻量版,其中没有Ability进入后台模式的功能(也可能博主没找到,如果有dalao指点一下随时欢迎),因此只能自己实现一下简单的后台运行。
在BearPi-HM_Micro的官方示例中具有wifi的连接功能,后来博主自己添加了热点的功能。但是在使用的过程中发现。如果关闭了设置应用wifi或者热点功能可能会失效或者无法保留之前的状态。
问题出现在main_ability_slice.cpp文件中
将文件改为如下
SetElementBundleName指定应用
SetElementAbilityName指定Ability(通过REGISTER_AA注册过的)
具体原因为
TerminateAbility();会关闭整个Ability进行应用的退出逻辑,这样退出会导致这个Ability所属的进程关闭,全部内存资源进行释放。除了你保存在硬盘中的数据都会消失
写入文件系统中的数据可以通过open等功能读取,但是全局变量等内容再次打开都会重新更新,因为再次打开就是一个新的进程了。
现在修改退出逻辑为改为调用StartAbility启动launcher界面(设置退出后的界面)。但是实际上设置app还在运行,当然这样对内存的占有肯定会比关闭要高
扩充内容(没有经过对比实验)
将app的config.json文件中的 "launchType": "xxxx",内容更改为 "launchType": "singleton",
防止再次打开设置app后会打开新的进程,可能不修改也不会,没有经过对比实验。