uni-app 安卓小程序sdk启动第二个小程序卡死
uni-app 安卓小程序sdk启动第二个小程序卡死
操作步骤:
1、先启动一个小程序,小程序不关闭,再通过DCUniMPSDK.getInstance().startApp 启动另一个小程序,第二个小程序卡死无法点击。 2、先启动一个小程序,通过DCUniMPSDK.getInstance().closeCurrentApp()关闭小程序,再通过DCUniMPSDK.getInstance().startApp 启动另一个小程序,第二个小程序卡死无法点击。
预期结果:
第二个小程序能点击
实际结果:
卡死,无法点击
bug描述:
下面两种情况都会卡死 1、先启动一个小程序,小程序不关闭,再通过DCUniMPSDK.getInstance().startApp 启动另一个小程序,第二个小程序卡死无法点击。 2、先启动一个小程序,通过DCUniMPSDK.getInstance().closeCurrentApp()关闭小程序,再通过DCUniMPSDK.getInstance().startApp 启动另一个小程序,第二个小程序卡死无法点击。
更多关于uni-app 安卓小程序sdk启动第二个小程序卡死的实战教程也可以访问 https://www.itying.com/category-93-b0.html
用unimpdemo测试看看是否存在该问题 我们用unimpdemo自带的两个应用切换启动测试没有发现问题
更多关于uni-app 安卓小程序sdk启动第二个小程序卡死的实战教程也可以访问 https://www.itying.com/category-93-b0.html
demo里是直接调DCUniMPSDK.getInstance().startApp启动没问题。在releaseWgtToRunPathFromePath的回调里打开第二个轻应用会卡死,上传了个代码,在demo基础上改的,点击第一个列表的数据会打开第二个应用
回复 4***@qq.com: 先关闭小程序 在UniMPOnCloseCallBack监听后再打开小程序
这是一个已知的uni-app安卓小程序SDK的并发启动问题。根据你的描述,问题出在小程序实例的切换处理上。
核心原因分析:
- 当第一个小程序未完全释放资源时,直接启动第二个小程序会导致线程冲突
- closeCurrentApp()方法可能没有完全清理前一个实例的上下文环境
建议解决方案:
- 确保在启动新小程序前添加适当的延迟(建议300-500ms)
- 检查小程序的生命周期回调,确保onDestroy完全执行
- 在调用startApp前先调用DCUniMPSDK.getInstance().release()释放资源
代码示例:
// 关闭当前小程序
DCUniMPSDK.getInstance().closeCurrentApp(new DCUniMPSDK.ICallBack() {
@Override
public void onCallBack() {
// 添加延迟
new Handler().postDelayed(() -> {
// 启动新小程序
DCUniMPSDK.getInstance().startApp(activity, appid, splashClass);
}, 300);
}
});