uni-app 关闭后台模式特定情况下宿主activity无法打开的问题
uni-app 关闭后台模式特定情况下宿主activity无法打开的问题 产品分类:uni小程序SDK 手机系统:Android 手机系统版本号:Android 11 手机厂商:OPPO 手机机型:K7x 页面类型:nvue SDK版本号:3.3.8
操作步骤:
登录app打开小程序,重复多次,再退出登录更换另一个账号登录,打开小程序,宿主activity无法启动
预期结果:
宿主activity能正常启动
实际结果:
宿主activity未能正常启动
bug描述:
关闭后台模式,在更换启动参数后有一定的概率会触发所有小程序都无法打开的问题(jsonobject 结构没有变化,只是改了值例如token等),没有任何错误信息,确认如下代码一定被执行
val uniMpOpenConfig = UniMPOpenConfiguration()
uniMpOpenConfig.splashClass = UniAppSplashView::class.java
uniMpOpenConfig.redirectPath = redirectPath
uniMpOpenConfig.extraData = jsonObject
val unImp = SoftReference(
DCUniMPSDK.getInstance().openUniMP(
context,
appId,
uniMpOpenConfig
)
)
mUniMPCaches[appId] = unImp
currentAppId = appId
这个问题目前已经修复了,修复记录:我们app是需要登录才能进首页的,首页是原生开发,首页上的子模块大部分是小程序。之前复现就是第一次登录到首页,打开小程序多个正常。然后退出登录再换别的账号登录后就会复现问题。起初怀疑是不是透传参数中token值发生改变导致,通过验证排除。之后在思考目前多进程方案应该配合有一定的缓存策略,是否因为缓存问题导致(因为问题复现后没有任何错误提示,只是点击后宿主activity没有启动)。再次查询api,找到closeUniMP,首先猜测closeUniMP应该伴随着缓存的清理,那么后续就在退出登录后配合自身业务调用如下代码:
fun closeAllUniApp() {
mUniMPCaches.forEach { it.value.closeUniMP() }
}
更多关于uni-app 关闭后台模式特定情况下宿主activity无法打开的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 小程序实例是多进程必然使用缓存的。
2 后台模式只能决定了每个小程序实例 是否出现在最近任务中。
更多关于uni-app 关闭后台模式特定情况下宿主activity无法打开的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
回复 skipper92: 你们期望 宿主销毁的时候,该宿主缓存的进程示例也销毁是吗
需要提供一个 可以复现问题的示例。 我没法定位问题。
登录信息是存在sp里面的


