Где я могу получить информацию, чтобы WidgetsBindingObserver снова заработал? - PullRequest
0 голосов
/ 13 сентября 2018

После обновления до бета-версии Flutter 0.7.3 (Dart 2.1.0-dev.1.0.flutter-ccb16f7282) WidgetsBindingObserver не работает.

Работает до и после входа в систему, если AppLifecycleState приостановлен, неактивен или приостановлен, возвращается на главную страницу. Но, похоже, это не работает с новым обновлением. У меня вопрос, где я могу получить информацию, чтобы увидеть, как заставить WidgetsBindingObserver снова работать.

// Statefull HomePage
class PersonalLoginPage extends StatefulWidget {
  const PersonalLoginPage({ Key key }) : super(key: key);

  @override
  _PersonalLoginPageState createState() => new _PersonalLoginPageState();
}

class _PersonalLoginPageState extends State<PersonalLoginPage> with WidgetsBindingObserver {
  AppLifecycleState _appLifecycleState;
  bool _appStatePause;


  // TODO: initState function
  @override
  void initState() {
    print("initState Starting Now .......................");
    super.initState();
    authenticateUser();
    WidgetsBinding.instance.addObserver(this);
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    Timer _timer;
    setState(() {
      _appLifecycleState = state;
      if (_appLifecycleState == AppLifecycleState.paused ||
          _appLifecycleState == AppLifecycleState.inactive ||
          _appLifecycleState == AppLifecycleState.suspending) {
        _appStatePause = true;
        print("New Timer Starting Now .......................");
        _timer = Timer.periodic(Duration(seconds: 60), _callback);
      } else {
        _appStatePause = false;
      }
    });
  }

  void _callback(_timer) {
    if (_appStatePause == true) {
      print("Timer Finished without cancel...................");
      setState(() {
        Navigator.push(
          context,
          SlideRightRoute(widget: MyApp()),
        );
      });
    } else {
      _timer.cancel();
      print("Timer cancel now................................");
    }
  }

  // TODO: authenticateUser function
  Future authenticateUser() async {
    ……
    ……
    ……

  }

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

  // TODO: main build Widget
  @override
  Widget build(BuildContext context) {

    return Scaffold(
         body: new Center(
            child: new Text(“Hello World”)
        )
    );
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...