didChangeAppLifecycleState未检测到更改

时间:2020-08-22 06:25:53

标签: flutter dart firebase-cloud-messaging

在混乱中,当用户被禁止时,我正在将FCM数据发送到设备。我在myBackgroundMessageHandler内处理此操作,将banned变量设置为true。如果收到FCM消息时该应用程序在后台运行,那么当该应用程序返回到前台时,我想导航到禁止的页面。我使用didChangeAppLifecycleState处理此问题,但问题是它没有检测到banned变量的变化,该变量始终被评估为false

bool banned = false;

class _MainScreenState extends State<MainScreen> with WidgetsBindingObserver {

   void didChangeAppLifecycleState(AppLifecycleState state) async {
      if (state == AppLifecycleState.resumed) {
         if (banned) {
            Navigator.of(context).pushReplacementNamed('banned');
         }
      }
   }

   _fcm.configure(
        onMessage: (Map<String, dynamic> message) async {
        },
        onBackgroundMessage: myBackgroundMessageHandler,
   });
}

Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) {
  if (message['data']['title'] == "banned") {
      banned = true;
  }
}

0 个答案:

没有答案