【问题标题】:how to Store app data and prevent data to get lost and also make app work at background in flutter如何存储应用程序数据并防止数据丢失并使应用程序在后台运行
【发布时间】:2022-01-23 15:12:54
【问题描述】:

我是一名中级 Flutter 开发人员,正在开发我的第一个商业应用程序并且我几乎创建了整个应用程序 ui,但问题是当我关闭我的应用程序时所有数据都丢失了。那么我该如何防止它+当应用程序关闭时,我怎样才能让我的应用程序在后台工作,就像在时钟应用程序中一样。在时钟应用程序中,即使应用程序关闭,我们也会在我们设置的时间收到警报。不可能提供整个应用程序代码,这就是我用文字解释它的原因。希望你们能理解问题并提供最佳答案。

【问题讨论】:

  • 你说的是哪种数据丢失?
  • @Diwyansh 我的意思是当应用程序关闭时,整个应用程序会重新启动,我必须从头开始。
  • 您所说的数据是指登录详细信息吗?对吗?
  • @Diwyansh 不,我的意思是用户添加的所有列表(项目)以及他们最喜欢的项目。
  • @pro grammer 这类项目应该存储在后端,用户添加的项目和他们喜欢的项目应该发送到后端存储在数据库中,以便用户能够访问无论他们使用什么设备登录,如果您没有要使用的 API,我都建议您使用 Firebase。

标签: flutter dart


【解决方案1】:

我们将您的问题分为两部分。

问题01:如何在本地存储数据:

这些是您可以与 Flutter 一起使用的一些流行数据库。更多信息请访问pub.dev。但是您想在任务中使用数据库。例如,只需存储用户名或用户 ID,您可以使用 共享首选项

问题02:制作报警应用:

对于安卓应用,你可以简单地使用android_alarm_manager 我建议您深入了解有关该主题的颤振文档:

Background processes

如果您需要显示预定消息,请使用local notifications

我认为通过参考这些链接你可以得到一个想法。

【讨论】:

    【解决方案2】:

    您可以使用内部数据库概念来保存用户数据,如 JWT 密钥、用户 ID、名字、姓氏或应用程序内容以供离线使用,如博客文章、pos 系统数据以供离线使用

    • 使用Shared preferences 保存用户数据、JWT 等基本数据,但安全性较低
    • 但如果您需要保存复杂的数据并需要查询或过滤,您可以使用hive,您可以让数据更加安全

    Alarm 是完全不同的方法,

    当我们安排警报时,警报管理器使用intent和flutter Isolate class在系统警报服务和唤醒应用程序上安排任务

    【讨论】:

      【解决方案3】:

      要存储数据locally,您可以使用local storageDatabase 选项,例如SQFliteHive 等或SharedPreference将在本地保存您的数据并运行后台进程,您需要使用 MethodChannel 并编写特定于平台的代码,或者您也可以选择使用 Isolates。您可以使用此链接阅读更多内容

      https://docs.flutter.dev/development/packages-and-plugins/background-processes

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-24
        • 1970-01-01
        • 2020-01-05
        • 1970-01-01
        • 2014-04-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多