首页
学习
活动
专区
工具
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.6K30
  • 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.4K50

    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 之上的。如果在其下,弹出的消息将会在对话框下方,效果不佳。

    19710

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

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

    2K30

    【译】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

    一文看懂人机对话

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

    1.3K30

    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只会创建一次,后面都是直接复用的。

    92800

    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.9K20

    用AI制作应用

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

    8010

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

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

    3.7K20

    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

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

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

    1.6K20

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

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

    4.3K21

    【Flutter】评级对话框组件

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

    4.1K50

    Flutter 1.22 正式发布

    您可以将旧按钮与新按钮混合使用。 新的国际化和本地化支持 自Flutter创立以来,Flutter已提供您的应用程序国际化(i18n)和本地化(l10n)所需的核心功能。...当用户选择一种颜色时,我们通常会调用setState()来向Flutter表示您希望再次调用build()方法,该方法现在会创建一个堆栈,其顶部是ColorScreen。...要进行手动测试,最简单的方法是在Android设备上启动启用了状态恢复功能的Flutter应用,在Android开发人员设置中启用“不要保留活动”,运行Flutter应用,将其置于后台,然后然后回到它。...IntelliJ中的托管DevTools检查器选项卡 一段时间以来,我们一直在维护某些Flutter工具的两个副本,例如IntelliJ中的Inspector窗格和Dart DevTools中的Inspector...Studio Code中的输出链接 Flutter开发人员所面临的常规活动是从终端或堆栈跟踪中的错误输出中进行。

    7.5K20
    领券