导入原生java类 js创建原生java类 然后获取类的uuid 再释放掉变量 但是还是可以通过uuid去操作 类并没有真正释放掉
- 发布:2020-08-05 02:50
- 更新:2020-08-05 15:35
- 阅读:1029
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 2.8.3
手机系统: Android
手机系统版本号: Android 10
手机厂商: 小米
手机机型: mix3
页面类型: vue
打包方式: 离线
项目创建方式: HBuilderX
操作步骤:
预期结果:
释放掉超过预期的原生变量
释放掉超过预期的原生变量
实际结果:
没有释放
没有释放
bug描述:
我是本地离线打包的 自己写了个java对象 通过 plus.android.import 引入 在js里面直接调用java 并且交互
var uuid="";
function aa(){
var node=acc.getnode()
console.log(node);
uuid=node.__UUID__;
plus.android.autoCollection(node);
}
aa();
console.log(window.plus.bridge.execSync2('Invocation', '__exec', [uuid, 'getChildCount', ""], null, true));
函数里面的node是一个android原生对象 当超过作用域,并且调用了释放函数 但是 我在函数外面 通过uuid的方法 还是可以操作这个变量,
理论上超过作用域会自动释放 但是实际上并没有 一直保存在plus里面,造成一个内存溢出
我项目是在后台长期运行 会产生大量长文本类型的字符串,运行久了以后 会因为内存溢出 被系统自动重启
请问如何释放掉所有不需要的变量