应用不活动时如何更改当前页面?

时间:2019-09-26 09:10:19

标签: flutter dart

我需要在5分钟内未激活应用程序时将用户重定向到身份验证页面。我想使用WidgetsBindingObserver。我检测到5分钟内应用程序处于非活动状态,但是我不知道如何将用户重定向到身份验证页面。

这是我的代码的一部分:

@override
  void initState() {
    super.initState();
    homeScreen = widget.homeScreen;
    WidgetsBinding.instance.addObserver(this);
  }

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

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    setState(() {
      if (state == AppLifecycleState.paused) {
        Future.delayed(Duration(seconds: 3), () {
          setState(() {
            // navigate to auth page
          });
        });
      }
    });
  }

2 个答案:

答案 0 :(得分:3)

您可以使用Navigator

Navigator.push(context,
      MaterialPageRoute(builder: (context) => AuthPage()));

答案 1 :(得分:0)

您不需要在5分钟内重定向应用程序,可以在用户希望导航到需要进行身份验证的页面(或执行某些操作)时将其重定向,只需将最后一个操作时间戳记入SharedPreferences并检查此时间戳记即可进行每个需要的身份验证操作。