bshenjn
bshenjn
  • 发布:2020-01-13 00:31
  • 更新:2020-01-13 10:21
  • 阅读:2310

【报Bug】循环定时器里调uni.getlocation次数多了后,安卓APP会崩

分类:uni-app

详细问题描述

(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)

[内容]
HBuilderX,mac 版本号:2.4.6.20191210
程序主要用于安卓APP开发
在页面中使用循环定时器调用获取定位的uni.getlocation,程序会因为内存占用越来越大而崩溃。
定时器循环间隔10s,程序大概2个小时左右崩溃,
在开发过程中,为了快速重现问题,我们把循环时间间隔设置为0.1s,十分钟不到APP占用内存就从100M升到了500M,就崩了。

重现步骤

[步骤]
1、新建一个最简单的uniapp项目
2、在app.vue或者index.vue的onluanch()里调用循环获取定位的函数
3、设置循环间隔为100ms
4、开启真机调试并运行

[结果]
app在手机中占用内存越来越大,然后就崩了

[期望]
自动回收或者释放资源

uni-app运行环境说明

[运行端是h5或app或某个小程序?]
安卓app

[运行端版本号]
测试过华为、魅族、三星,都会崩,只是根据手机的性能不同,崩溃的时间不同

附件

[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]

[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]

[App安装包或H5地址]

[可重现代码片段]

<script>  
    export default {  

        onLaunch: function() {  
            console.log('App Launch')  
            this.startgetLocation();  
        },  
        onShow: function() {  
            console.log('App Show')  
        },  
        onHide: function() {  
            console.log('App Hide')  
        },  
        methods: {  

            async startgetLocation() {  
                var that = this;  
                try {  
                    console.debug("loop start");  
                    await that.getLocation();  
                } catch (e) {  
                    console.debug("catch  :" + e);  
                }  
                console.debug("loop end");  
                setTimeout(function() {  
                    that.startgetLocation();  
                }, 1000);  

            },  
            getLocation: () => {  

                return new Promise((resolve, reject) => {  
                    uni.getLocation({  
                        type: 'gcj02',  
                        // geocode: true,  
                        success: function(res) {  

                            reject('suc');  

                        },  
                        fail: function(err) {  

                            reject('err');  

                        },  
                        complete: function(res) {  

                            resolve('cmp');  

                        }  
                    });  
                })  
            }  
        }  
    }  
</script>  

<style>  

</style>

联系方式

18057290017
[QQ]
1204572640

2020-01-13 00:31 负责人:无 分享
已邀请:
DCloud_UNI_HT

DCloud_UNI_HT

  • bshenjn (作者)

    可以,感谢感谢

    2020-01-14 12:38

该问题目前已经被锁定, 无法添加新回复