Dart 如何在发布构建apk时处理颤振中的后压

Dart 如何在发布构建apk时处理颤振中的后压,dart,flutter,onbackpressed,Dart,Flutter,Onbackpressed,我是个新手,我试着在颤振中处理背压事件。它只适用于调试构建,当我尝试释放构建时,按下未触发的事件,我不知道是什么错误。如有任何帮助,我们将不胜感激,并提前向您表示感谢 我试过了,但都是在调试apk中完成的。使用颤振构建apk cmd(在build\app\outputs\apk\release文件夹下)获取发布构建时,未触发反按事件 import 'dart:async'; import 'dart:io'; import 'package:cryptocurrency_app/dat

我是个新手,我试着在颤振中处理背压事件。它只适用于调试构建,当我尝试释放构建时,按下未触发的事件,我不知道是什么错误。如有任何帮助,我们将不胜感激,并提前向您表示感谢

我试过了,但都是在调试apk中完成的。使用颤振构建apk cmd(在build\app\outputs\apk\release文件夹下)获取发布构建时,未触发反按事件

    import 'dart:async';
import 'dart:io';

import 'package:cryptocurrency_app/data/crypto_data.dart';
import 'package:cryptocurrency_app/home/home_presenter.dart';
import 'package:flutter/material.dart';

class HomeList extends StatefulWidget {
  HomeList({ Key key }) : super(key: key);
  @override
  _HomeListState createState() => new _HomeListState();
}

class _HomeListState extends State<HomeList>  {
  final key = new GlobalKey<ScaffoldState>();
  _HomeListState() {

  }

  @override
  void initState() {
    super.initState();
    // WidgetsBinding.instance.addObserver(this);

  }

/*
  @override
  void dispose() {
   // WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }*/

  Future<bool> _onWillPop() {
    return showDialog(
        context: context,
        child: new AlertDialog(
          title: new Text('Exit'),
          content: new Text('Are you sure you want to exit ?'),
          actions: <Widget>[
            new FlatButton(
              onPressed: () => Navigator.of(context).pop(true),
              child: new Text('Yes',
                  style: new TextStyle(color: Colors.black)),
            ),
            new FlatButton(
              onPressed: () => Navigator.of(context).pop(false),
              child: new Text('No',
                  style: new TextStyle(color: Colors.black)),
            ),
          ],
        ),
      );
  }

  @override
  Widget build(BuildContext context) {
    var widget;
   widget = new WillPopScope(
          onWillPop: _onWillPop,

          child: new Scaffold(
            key: key,
            appBar: buildBar(context),
            body: new Center(
                child: new Padding(
                    padding: const EdgeInsets.only(left: 16.0, right: 16.0),
                    child: new CircularProgressIndicator()
                )
            ),
          ));
    }
    return widget;
  }

  Widget buildBar(BuildContext context) {
    return new AppBar(
      leading: new IconButton(
        icon: const Icon(Icons.search),
        color: Theme
            .of(context)
            .accentColor,
        onPressed: _handleSearchStart,
        tooltip: 'Search',
      ),
      title: new Text("Crypto Live Rates",
        style: new TextStyle(color: Colors.white),
      ),
    );
  }



}
导入'dart:async';
导入“dart:io”;
导入“package:cryptocurrency_app/data/crypto_data.dart”;
导入“package:cryptocurrency_app/home/home_presenter.dart”;
进口“包装:颤振/材料.省道”;
类HomeList扩展了StatefulWidget{
HomeList({Key}):超级(Key:Key);
@凌驾
_HomeListState createState()=>new_HomeListState();
}
类_HomeListState扩展状态{
final key=new GlobalKey();
_HomeListState(){
}
@凌驾
void initState(){
super.initState();
//WidgetsBinding.instance.addObserver(这个);
}
/*
@凌驾
无效处置(){
//WidgetsBinding.instance.removeObserver(此);
super.dispose();
}*/
未来(willpop){
返回显示对话框(
上下文:上下文,
子:新建警报对话框(
标题:新文本(“退出”),
内容:新文本(“您确定要退出吗?”),
行动:[
新扁平按钮(
onPressed:()=>Navigator.of(context.pop)(true),
子项:新文本('是',
样式:新文本样式(颜色:Colors.black)),
),
新扁平按钮(
onPressed:()=>Navigator.of(context.pop)(false),
子项:新文本('否',
样式:新文本样式(颜色:Colors.black)),
),
],
),
);
}
@凌驾
小部件构建(构建上下文){
var控件;
widget=newwillpopscope(
onWillPop:_onWillPop,
儿童:新脚手架(
钥匙:钥匙,
appBar:buildBar(上下文),
正文:新中心(
孩子:新的填充物(
填充:仅限常量边集(左:16.0,右:16.0),
子项:新循环ProgressIndicator()
)
),
));
}
返回控件;
}
小部件构建栏(构建上下文){
返回新的AppBar(
领先:新图标按钮(
图标:常量图标(Icons.search),
颜色:主题
.of(上下文)
.accentColor,
按下按钮:_handleSearchStart,
工具提示:“搜索”,
),
标题:新文本(“加密实时费率”,
样式:新文本样式(颜色:Colors.white),
),
);
}
}

您使用的是什么版本的颤振?目前我正在使用git的颤振sdk master,但我不知道它是什么版本。检查颤振版本有cmd吗?
flatter--version
flatter doctor
感谢cmd,flatter 0.3.1-pre.15 channel master,dart 2.0.0-dev.47.0我认为在调试和发布时也应该这样做。如果您可以提供允许复制的代码,那么创建bug报告可能是个好主意。