首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BLE传输函数中Garmin Vivoactive HR的内存泄漏

BLE传输函数中Garmin Vivoactive HR的内存泄漏
EN

Stack Overflow用户
提问于 2017-10-15 02:32:26
回答 1查看 168关注 0票数 0

我正在为Garmin Vivoactive HR开发一个手表应用程序,它将定期向手机发送数据(使用ConnectIQ SDKV2.3.4)。

可用内存会随着Communications.transmit(...)函数会被重复调用,直到应用程序在内存不足时崩溃。

我已经用transmit()调用注释掉了我的应用程序,问题没有发生,所以我认为这要么是transmit()函数中的内存泄漏,要么是(据我所知)在transmit()调用之后需要做一些未记录的事情来释放内存。

下面是我的测试代码的相关部分:

代码语言:javascript
复制
     function initialize() {
    View.initialize();
    listener = new Comm.ConnectionListener();
  }

function timerCallback() {
  var dataObj = {
    "HR"=> 60,
    "X" => 0,
    "Y" => 0,
    "Z" => 0
  };
  // FIXME - THIS CRASHED WITH OUT OF MEMORY ERROR AFTER 5 or 10 minutes.
  Comm.transmit(dataObj,null,listener);
  Ui.requestUpdate();
}


  // Load your resources here
  function onLayout(dc) {
    width = dc.getWidth();
    height = dc.getHeight();
    myTimer = new Timer.Timer();
    myTimer.start(method(:timerCallback), 1000, true);
  }

完整的测试应用程序在运行时会在监视屏幕上显示可用内存,如下所示:https://github.com/OpenSeizureDetector/Garmin_SD/tree/master/MemTest

我只能在Vivoactive HR设备上测试它,因为我无法运行garmin模拟器的linux版本。它看起来与Garmin显然修复(https://forums.garmin.com/forum/developers/connect-iq/100499-periodic-ble-transmit-causes-memory-leak)的早期问题类似,但我似乎无法登录Garmin论坛在那里报告它。

有没有人知道我做错了什么,应该要求释放内存,或者这看起来像是SDK的Communications.transmit()函数中的错误吗?

EN

回答 1

Stack Overflow用户

发布于 2018-03-17 04:05:05

尝尝这个

代码语言:javascript
复制
   Comm.transmit(dataObj,null,listener);
   dataObj = null;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46748009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档