首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤动:不输入函数

颤动:不输入函数
EN

Stack Overflow用户
提问于 2019-07-03 17:40:00
回答 1查看 60关注 0票数 0

在发布版本中,应用程序不会进入该函数。在debug中,一切都是正确的。在上面的代码中:显示了handler-1,但不显示handler-2。

代码语言:javascript
复制
void add(MeasuringDto measuringDto) async{
    if(!showIsOn && measuringDto.isFilled){
      count++;
      if(count % rangeToPost == 0){
        measurings.add(measuringDto);
      }
      if(measurings.length >= countToPost){
        showIsOn = true;
        print("handler-1");
        await handler(measurings);
        print("handler-2");
        measurings.clear();
        showIsOn = false;
      }
    }
  }

*更新

我想我找到了原因:我使用lambda函数监听流。据我所知,在调试模式下,这个lambda是在一个单独的线程中执行的,在发布模式下是在UI线程中执行的。由于流经常生成新数据,因此在发行版中,UI线程是完全加载的。但是我还是不明白如何解决这个问题,如何释放UI线程。

代码语言:javascript
复制
var subscription = characteristic.value.listen((value) {
  _measuringPool.add(MeasuringDto(value));
});

*更新-2

代码语言:javascript
复制
  void _measuringHandler(List<MeasuringDto> measuringDtos) async {
    CardioDto cardioDto = new CardioDto(measuringDtos);
    try {
      await writeECG(cardioDto);
    } on DataPostFailedException catch (e) {
      print(e);
    }
  }

void writeECG(CardioDto cardioDto) async {
  var response = await http.post(address + "addECGMeasurements",
      body: cardioDto.toJson(), headers: headers);
  updateCookie(response);
  var dataAnswerDto = DataAnswerDto.fromJson(response.body);
  if (response.statusCode != 200 || !dataAnswerDto.success) {
    print("Error while posting ECG measurements: " + dataAnswerDto.error);
    throw DataPostFailedException();
  }
}
EN

回答 1

Stack Overflow用户

发布于 2019-07-03 18:57:57

请详细介绍一下您的处理程序(度量)函数。

当我调用的函数访问互联网时,我也遇到了同样的问题。由于我的AndroidManifes.xml中没有请求互联网访问,它在调试模式下工作正常,但在发布模式下抛出错误...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56867197

复制
相关文章

相似问题

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