我正在做一个聊天应用程序,我想发送推送通知给一个用户,只有当他不在聊天屏幕,所以我需要知道当前屏幕或路径

我试着在他每次进入屏幕时都保存屏幕的名称,但当然,当用户使用Navigator.POP或他使用手势返回时,它不起作用

我不知道做这件事的正确方法是什么

推荐答案

也许你可以使用dispose方法在用户离开屏幕时更新状态:

import 'package:flutter/material.dart';

class ChatScreen extends StatefulWidget {
  @override
  _ChatScreenState createState() => _ChatScreenState();
}

class _ChatScreenState extends State<ChatScreen> {
  bool userInChat = false;

  @override
  void initState() {
    super.initState();
    // Set the user as "in the chat" when the widget is initialized
  }

  @override
  void dispose() {
    // Set the user as "not in the chat" when the widget is disposed (he left the screen)
    super.dispose();
  }
}

initState方法在创建窗口小部件时调用,dispose方法在窗口小部件从窗口小部件树中移除时调用,dispose通常在用户导航离开屏幕时调用.

Flutter相关问答推荐

Flutter 导致底部溢出

获取屏幕大小的滚动视图与动态大小?

Build.gradle专线:2个Flutter Flutter

Android NFC未收到空的NFC标签

Riverpod状态管理-在调用请求时更新用户界面

TextFormfield无法与自动路由一起正常工作

当键盘在抖动中打开时,如何才能看到包装在SingleChildScrollView中的列中的最后一个小工具?

BlocBuilder仅生成一次,并在后续发出时停止重建

如何在应用程序中使用Fflight显示表情包

为什么PUT方法没有发出任何响应?

在LinkedIn上分享Fighter和Web的链接会产生不同的结果

框中的Flutter 适配图像

如何在 Flutter 中以背景 colored颜色 制作圆圈的一部分

在 Flutter 中更改喜欢按钮的 colored颜色

PreferredSizeWidget类不能用作混合,因为它既不是混合类也不是混合

如何设置行中项目之间的空格相等?

Flutter可滚动定位列表支持rtl方向吗?

Android Studio - Electric Eel 2022.1.1 更新 destruct 了 dart 文件图标

如何在flutter中共享容器和gridview之间的滚动条?

Flutter audioplayers错误-单击音频按钮时不播放音频