首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有一种方法可以跟踪自对话消息在Flutter中消失以来的天数?

在Flutter中,可以使用SharedPreferences来跟踪自对话消息在消失后的天数。SharedPreferences是Flutter提供的一个轻量级的键值对存储工具,可以用于存储应用程序的持久化数据。

首先,需要在Flutter项目中添加shared_preferences依赖。在pubspec.yaml文件中添加以下代码:

代码语言:txt
复制
dependencies:
  shared_preferences: ^2.0.8

然后,运行flutter pub get命令来获取依赖包。

接下来,可以使用SharedPreferences来存储和获取消息消失的日期。以下是一个示例代码:

代码语言:txt
复制
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

class MessageTracker {
  static const String _keyLastMessageDate = 'last_message_date';

  Future<int> getDaysSinceLastMessage() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    DateTime lastMessageDate = DateTime.parse(prefs.getString(_keyLastMessageDate) ?? '');
    DateTime currentDate = DateTime.now();
    int days = currentDate.difference(lastMessageDate).inDays;
    return days;
  }

  Future<void> updateLastMessageDate() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    DateTime currentDate = DateTime.now();
    prefs.setString(_keyLastMessageDate, currentDate.toString());
  }
}

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  final MessageTracker messageTracker = MessageTracker();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Message Tracker'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              ElevatedButton(
                child: Text('Update Last Message Date'),
                onPressed: () {
                  messageTracker.updateLastMessageDate();
                },
              ),
              FutureBuilder<int>(
                future: messageTracker.getDaysSinceLastMessage(),
                builder: (BuildContext context, AsyncSnapshot<int> snapshot) {
                  if (snapshot.hasData) {
                    return Text('Days since last message: ${snapshot.data}');
                  } else {
                    return Text('Loading...');
                  }
                },
              ),
            ],
          ),
        ),
      ),
    );
  }
}

在上述示例代码中,MessageTracker类用于处理消息跟踪逻辑。getDaysSinceLastMessage()方法用于获取自对话消息消失后的天数,updateLastMessageDate()方法用于更新最后一条消息的日期。

在Flutter应用程序的界面中,可以通过点击按钮来更新最后一条消息的日期,并通过FutureBuilder来显示距离最后一条消息的天数。

请注意,上述示例代码仅用于演示如何使用SharedPreferences来跟踪消息消失的天数,实际应用中可能需要根据具体需求进行适当的修改和扩展。

推荐的腾讯云相关产品:腾讯云移动推送(https://cloud.tencent.com/product/tpns)可以用于实现消息推送和跟踪功能。

相关搜索:Rails,在模型中是否有一种方法可以提供自上次更新以来的难度?有没有一种方法可以在Flutter中缓存卡片?有没有一种方法可以播放之前在flutter中停止的视频?有没有一种方法可以在flutter中快进快退音频?有没有一种方法可以在flutter中从列表中随机排列元素?在Google Sheets中有没有一种方法可以跟踪连接的工作表有没有一种方法可以在flutter中关闭包含列表视图的模式底板?有没有一种简单的方法可以在div中垂直居中?在Flutter中,有没有一种方法可以切换google地图上标记的可见性?有没有一种方法可以在flutter中应用文本字符串的颜色?在Cypress中,有没有一种方法可以避免依赖于日常消息的失败?有没有一种方法可以检测消息中的链接?(或者有人可以帮助我编写代码)有没有一种简单的方法可以在堆栈上获得当前活动的对话框?有没有一种方法可以将文本添加到带有反应的消息中在Flutter Row中,有没有一种方法可以在使用MainAxisAlignment.spaceBetween时将子项居中对齐?有没有一种方法可以在r中的ggplot中表示多种方法?有没有一种方法可以在html的函数输出中添加文本?当消息到达PubSub时,有没有一种方法可以用数据流删除SQS中的消息?有没有一种简单的方法可以在vim中恢复json的漂亮打印?在RabbitMQ中,有没有一种方法可以确保消费者消费消息,然后只继续流?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel小技巧79:如何跟踪Excel工作簿修改

你是否正在寻找跟踪Excel电子表格更改方法许多情况下,你必须将一个文件分发给多个人,并跟踪所做更改。你可能希望跟踪更改时间、更改者、更改发生在哪个单元格以及更改了哪些数据。...启用跟踪并不意味着你所做每一个更改都会被记录下来。存储单元格任何数据都会被跟踪,但格式等其他更改不会被跟踪。其他未跟踪更改包括隐藏/取消隐藏由于公式重新计算而更改行和列、批注和单元格值。...上面是Excel如何进行跟踪一些基本知识,接下来让我们来讨论如何启用它、更改设置和跟踪更改!...你还可以选择突出显示上次保存文档时更改(特定日期以来),或尚未审阅更改。 如果选取了“修订人”,你可以选择跟踪任何人所做更改或除你之外所有人所做更改。...单击“修订”按钮左侧“共享工作簿”按钮。弹出“共享工作簿”对话框,单击“高级”选项卡,如下图5所示。 ? 图5 在这里,你可以将保存更改历史记录天数更改为30天以外天数

6.3K30
  • Flutter 2.5正式版发布,带来重大更新

    以前某些图像内存在响应 Dart VM GC 执行时会延迟回收,作为早期版本解决方法Flutter 引擎会通过 Dart VM GC 回收暗示图像内存可以回收,这在理论上可以实现了更及时内存回收...Android 全屏、Material You & 文本编辑快捷方式 从(#81303) 开始, 我们修复了 Android 一系列与全屏模式相关问题,此更改还添加了一种在其他模式下收听全屏更改方法...此外,在跟踪应用程序 CPU 性能问题时,可能会被来自 Dart 和 Flutter 库或引擎本机代码分析数据淹没,如果想关闭其他干扰,只专注于您自己代码,您可以使用新 CPU Profiler...集成测试是设备上运行整个应用程序一种测试方式,测试代码位于 integration_test 目录,并使用与testWidgets() 单元测试相同功能。... Flutter 诞生以来,我们就使用Counter 作为应用模板,它具有许多优点: 展示了 Dart 语言许多特性; 展示了几个关键 Flutter 概念,并且它足够小; 可以放入单个文件

    4.3K50

    Flutter 2.5正式版发布,带来多项重大更新

    以前某些图像内存在响应 Dart VM GC 执行时会延迟回收,作为早期版本解决方法Flutter 引擎会通过 Dart VM GC 回收暗示图像内存可以回收,这在理论上可以实现了更及时内存回收...[在这里插入图片描述] Android 全屏、Material You & 文本编辑快捷方式 从(#81303) 开始, 我们修复了 Android 一系列与全屏模式相关问题,此更改还添加了一种在其他模式下收听全屏更改方法...此外,在跟踪应用程序 CPU 性能问题时,可能会被来自 Dart 和 Flutter 库或引擎本机代码分析数据淹没,如果想关闭其他干扰,只专注于您自己代码,您可以使用新 CPU Profiler...集成测试是设备上运行整个应用程序一种测试方式,测试代码位于 integration_test 目录,并使用与testWidgets() 单元测试相同功能。... Flutter 诞生以来,我们就使用Counter 作为应用模板,它具有许多优点: 展示了 Dart 语言许多特性; 展示了几个关键 Flutter 概念,并且它足够小; 可以放入单个文件

    3.6K00

    Google IO ——饭后小菜

    Google预览AR眼镜 Google发布会最后还预览Google正在开发AR眼镜,戴上以后可以实时显示对方讲话时字幕,并且可以用作翻译使用。...如果谷歌计划减少头戴式可穿戴设备体积以方便使用,没有任何消息,但就设计而言,这就是我们所拥有的全部信息。...而在Google I/O 2022,新增了Mutisearch邻近查找,可以根据搜索图片中信息,找出邻近你产品信息或是餐厅等。...虽然 Flutter 自发布以来一直与基于 M1 Apple 设备兼容,但 Flutter 现在充分利用了 Dart 对 Apple 芯片支持,从而能够基于 M1 设备上更快地编译并支持 macOS... Flutter 1.0 beta 发布以来过去四年里,他们逐渐在这些基础上进行构建,添加了新框架功能和新小部件,与底层平台更深入地集成,丰富包库以及许多性能和工具改进。

    1.2K10

    Flutter TolyUI 框架#03 | 全局消息通知

    TolyUI 中将这种全局展示操作反馈信息称之为 Message,它职能在于: 展示成功、警告和错误等反馈信息,并在指定时间后可自动消失消息不会打断用户交互,是一种轻量级交互反馈。...TolyUI 已经寻找到了一种基于单体功能模块,组织复杂框架手段。我所描绘是一张 Flutter 全平台 UI 框架蓝图,它为 Flutter 全平台开发指明方向。...它也是基于 $message 对象触发相关方法来打开。 1. 是否自动关闭 Notification 默认从右上角右向左动画展出, 3 秒后自动移除。...建议一个 App 消息和通知可以统一风格,为此 TolyUI 提供消息通知主题配置,便于开发者统一配置默认样式。...最后,由于全局消息提示是 MaterialApp 之上。如果在其下,弹出消息将会在对话框下方,效果不佳。

    16410

    BizTalk Server 2004 SP2 存档和清除 BizTalk 跟踪数据库

    清除 Biztalk 跟踪数据库数据时,DTA 清除和存档作业将清除不同类型跟踪信息,例如消息和服务实例信息、业务流程事件信息,以及规则引擎跟踪数据。...将跟踪消息复制到跟踪数据库 使用“CopyTrackedMessageToDTA”选项,可以直接将跟踪消息从 MessageBox 服务器复制到 Biztalk 跟踪数据库。...更快 HAT 操作,对数据库架构进行了显著优化 使您可以使用 HAT 任务大型数据库查找消息和服务实例;已对此功能进行了显著优化。...配置同一个方案,却可以产生数量大不相同跟踪数据,这取决于跟踪数量、用到不同消息数量、这些消息大小以及所使用消息正文跟踪级别。...负载不可承受条件下,复制消息正文速度也会降低,这可能在 MessageBox 数据库形成积压。极端条件下,日常消息正文复制和跟踪会产生消息正文不可用存档,即使该消息包含相关实例信息。

    2K30

    一文看懂人机对话

    通过人机对话交互,用户可以查询信息,如示例第一轮对话,用户查询天气信息;用户也可以和机器进行聊天,如示例第二轮对话;用户还可以获取特定服务,如示例最后两轮对话,用户获取电影票预定服务。...图2是NLP顶级会议ACL和EMNLP2010年以来对话相关论文数量,可以看出从2016年开始对话论文数量增长迅猛,2018年相比于2010年对话论文数量有数倍增长。...图2 对话论文NLP会议上增长趋势 二、人机对话技术 人机对话技术研究最早可以追溯到上世纪六十年代,阿兰·图灵提出通过图灵测试[1]来检验机器是否具有人类智能设想以来,研究人员就开始致力于人机对话系统研究...随着深度学习技术兴起,以对话语料为基础使用神经网络模型进行对话学习是近几年人机对话主流研究方法。人机对话根据功能不同可以分为任务完成、问答和聊天三种类型,不同类型采用技术手段和评价方法也不同。...检索方案从百亿级语料库检索回复,可以有效解决聊天类型对话开放性问题,而且检索出回复语义丰富度和流畅性都很好,单轮对话中表现很好,但在多轮对话,检索方案就问题重重了。

    1.3K30

    【译】Flutter 1.20 发布

    最后 Flutter 不能没有 Dart ,因此很高兴看到 IEEE 报告说 Dart 去年以来已经上升了 4 个排位,在他们跟踪前 50 种语言中排名第 12。...Flutter 和 Dart 性能改进 Flutter 团队,我们一直寻找减少应用程序大小和延迟方法。...自动填充移动文本字段 一段时间以来,最受用户欢迎功能之一是为 Flutter 程序对文本自动填充 Android 和 iOS提供支持。...另外,如果你想了解 InteractiveViewer 设计和开发方法,则可以YouTube 上看到 Chicago Flutter on YouTube.演讲。...使用Pigeon,你可以直接调用 Dart 方法情况下调用 Java / Objective-C / Kotlin / Swift 类方法并传递非基本数据对象,而无需平台通道上手动匹配方法字符串和序列化参数

    4K10

    Wireshark 4.0.0 如约而至,这些新功能更新太及时了!

    函数可以接受表达式作为参数,包括其他函数。以前只有协议字段和切片是语法上有效函数参数。 添加了一种语法来消除标识符文字歧义。每个带有前导点值都是一个协议或协议字段。...HTTP2 解析器现在支持使用假标头来解析没有长寿命流第一个 HEADERS 帧情况下捕获数据(例如允许一个 HTTP2 流中发送许多请求或响应消息 gRPC 流调用)。...可以tshark和其他 CLI 工具设置 extcap 密码。 extcap 配置对话框现在支持并记住空字符串。有新按钮可将值重置为默认值。... ZigBee ZCL 消息解析器,zbee_zcl_se.msg.msg_ctrl.depreciated 字段已重命名为 zbee_zcl_se.msg.msg_ctrl.deprecated...此外,现在可以通过接口列表上下文菜单隐藏和显示接口 Windows 事件跟踪 (ETW) 文件阅读器现在支持显示来自事件跟踪日志文件或事件跟踪实时会话 IP 数据包。

    2.3K20

    Flutter runApp 与三棵树诞生流程源码分析

    Flutter 绘制动机 VSYNC 流程源码全方位分析》 《Flutter 安卓 Platform 与 Dart 端消息通信方式 Channel 源码解析》 背景 从写 Flutter 第一行程序开始我们就知道...Dart main 方法通过调用 runApp 方法把自己编写 Widget 传递进去,只有这样编译运行后才能得到预期效果。...你有没有好奇这背后都经历了什么?runApp 为什么这么神秘?或者说,在你入门 Flutter 后应该经常听到或看到过 Flutter 三棵树核心机制东西,你有真正想过他们都是什么吗?...Flutter 程序入口 我们编写 Flutter App 一般入口都是 main 方法,其内部通过调用 runApp 方法将我们自己整个应用 Widget 添加并运行,所以我们直接去看下 runApp...*如果Element已经创建过则将根Element关联Widget设为新(即_newWidget)。 *可以看见Element只会创建一次,后面都是直接复用

    88800

    用AI制作应用

    : OpenAI GPT-4 Anthropic Claude 3 Opus Google Gemini Advanced 如何开始 GPT-4V 早期预发布演示以来,人们想象力就开始活跃起来...自从我上次尝试制作原生应用程序以来Flutter 受欢迎程度有所提高,所以我决定尝试一下,尽管我之前没有使用过 Dart。...代码库越大,这种情况就越少见 - 我最终以后请求提示末尾添加了另一个提醒: 我经常开始撞上 Claude 消息限制,它每隔大约 8 小时会重置一次 - 这成了我主要瓶颈,因为这些功能积累起来且代码库不断增长...有一些需要改进地方,例如改进局促“添加/编辑提示”对话框,但我可以轻松地管理和分享我提示并在现场对其进行测试 - 甚至保存我常用回复。 缺点 我已经准备好了分享我应用程序。...通过使用 API 而不是 Web UI 或以其他方式规避消息上限,可以缩短交付时间表。

    6810

    Linux上查看用户创建日期几种方法总结

    基本上 Linux 系统不会跟踪这些信息,因此,获取这些信息替代方法是什么? 你可能会问为什么我要查看这个? 是的,某些情况下,你可能需要查看这些信息,那时就会对你会有帮助。...可以使用以下 7 种方法进行验证。...我们可以查看用户家目录 .bash_logout 更改日期。该文件是在用户第一次注销时创建。...chage 命令可以修改上次密码更改日期后需要更改密码天数。 系统使用此信息来确定用户何时必须更改其密码。如果用户帐户创建日期以来没有更改密码,这个就有用。...如果用户帐户创建后没有修改密码,那么可以使用 passwd 命令查看最后一次密码修改日期。

    2K20

    Flutter入门-路由导航

    例如: MaterialPageRoute MaterialPageRoute 继承 PageRoute类,是 Material 组件库提供组件,针对不同平台,其有不同路由动画效果。...设置为false时,入栈新页面时,释放当前原路由所占用资源 fullscreenDialog 新路由是否是一个全屏模态对话框,例如在ios,如果为true,则新页面从屏幕底部滑入,而不是水平...如果想自定义路由动画,可以继承 PageRoute 来实现。 Navigator Navigator 是一个路由导航组件,提供了打开和退出路由方法,Navigator 内部通过栈来管理活动路由集合。...Navigator 类第一个参数为 context 静态方法 都对应着一个 Navigaor 实例方法.比如: Navigator.push(BuildContext context,Route...,否则什么都不做; canPop 判断是否可以返回上个页面; removeRoute 表示从Navigator 删除路由,同时释放Route自身资源,路由生命周期结束; removeRouteBelow

    1.2K20

    关于Flutter 2.5稳定版你知道多少?

    作为 调整消息通道 一部分,我们从消息编解码器移除了不必要拷贝,不同内容大小和设备上减少了高达 50% 延迟 (详见 #25988、#26331)。...这一变化还增加了一种方法用来监听其他模式下全屏变化。例如,如果用户使用应用时,改变了系统界面的全屏模式,开发者现在可以通过代码让应用重新变为全屏,或执行其他操作。... Flutter 2.0 中新增 ScaffoldMessenger,它提供了一种强大方式,屏幕底部显示 SnackBars 以向用户提供通知。...其中一组更新使 Flutter 能够更好地将跟踪事件与特定帧联系起来,这有助于开发人员确定一个帧可能会超出预算原因。...SingleActivator 了解 1.17 版本以来完整破坏性改动列表,请参阅:Flutter 文档网站。

    3.7K20

    React Native迎来重大架构升级,性能将大幅提升

    RN 发布以来,它大致经历了如下几次版本迭代(图片来自京东熊文源 GMTC PPT),这一次主要是解决诟病已久性能问题。...得益于 JSI,JavaScript 可以直接调用 Native 模块方法。类似于浏览器,JavaScript 调用获取经纬度方法,实际调用是 C++ 底层获取方法。...其次,JavaScript 和 Dart 和底层交互都是通过 C++ 进行,也是打个平手。最后,RN 原生组件绘制有平台优化加成, 相对于 Flutter 绘引擎绘制,可能还会好上一些。...跨端和原生解决方案之间,未来会是一种怎么样动态平衡? 蒋宏伟:跨端框架发展关键因素是净收益大小。...有原生就有跨端,二者会一直并存,但跨端方案市场份额会变更大。原生解决方案更多是一些创新、基础场景,比如短视频、VR 或者跨端基础设施。

    1.5K20

    2021年50个酷炫Web和移动项目创意

    与招聘经理互动会变得更加非正式和随意。但是,当然应该有一种方法来限制互动,以使它不会像垃圾邮件那样变得泛滥成灾。...基本上,您只需要使用100DaysOfCode主题标签,然后使用Twitter来发布您日常进度。目前,没有简单方法可以自动跟踪和安排主题标签推文。...这将是一种绝佳升级方法,也是初学者轻松工作简便方法。我认为这将是一个好主意,因为它可以将招聘人员完全裁掉,并且您无需面试施加压力。...编程级别:中级 项目类型:后端 前端: 不适用后端:Node.js 31.新闻汇总器 决定寻找消息来源消息有时会使您工作效率低下。将所有这些都集中一个地方会容易得多。...您可以创建一个聊天机器人例子,它可以跟踪日常任务并为您提供有关如何提高工作效率建议。因此,一个用例,也许您花了3个小时进行编程,但由于您太忙了,所以那天没有洗衣服。

    4K21

    详解flutter engine 那些没被释放东西

    方法可用于强制FlutterEngine对象释放所有资源。 发送此消息后,对象将处于不可用状态,直到解除分配为止。 访问属性或向其发送消息将导致未定义行为或运行时错误。...之前博主遇到崩溃是自己使用方式问题,fluttervc关闭之后还有任务执行methodchannel,即还在调用plugin,这个可以开发上避免。...内存管理一种页面置换算法,对于在内存但又不用数据块(内存块)叫做LRU,flutter engine 会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外数据。...实现:每个隔离一个任务,它与拥有isolate一起消失,后台编译器没有OSR编译。...vm,service.cc,都继承MethodParameter,做对应参数校验,参数解析用。

    1.8K42

    Flutter】评级对话框组件

    扑朔迷离一切都是小部件! 向用户显示一些知识是一个了不起想法,这是我们使用对话最基本想法。Flutter这个惊人UI工具包,我们有几种不同方法来构建对话框。...在在本博客,我们将探讨「Flutter“「评级对话框”」。我们将看到如何使用flutter应用程序「rating_dialog」包来实现美观评级对话框演示程序并进行自定义。...这个库是最好,因为它伴随着星级评价和联系,甚至可以滑动评级并发光以进行星级评价。之所以命名为“等级”对话框,是因为该库将识别您在颤动星形图标上做出手势以提供等级。...小部件内,我们将添加一个Center小部件,并且其子属性添加一个「MaterialButton()。「在此按钮,我们将添加文本,颜色,按钮形状和onPressed方法。...在此对话,我们将添加」ratingColor」表示评级栏(星形图标和发光效果)颜色,「标题」,「消息」表示对话消息/描述文本,「图像」,「submitButton」表示提交按钮标签/文本,「

    4.1K50
    领券