【问题标题】:Store data periodically in Android在 Android 中定期存储数据
【发布时间】:2014-11-18 22:20:47
【问题描述】:

我需要记录我的布尔变量的变化,这取决于我的代码中的某些条件。我有一个 timertask 每秒运行一次以跟踪任何此类更改。当发生变化时,即当变量从“真”变为“假”时,我需要保存此事件发生的时间。所有这些事件都需要能够在以后从另一个 Activity 中检索。我可以使用 SharedPreferences 来实现这个任务:我正在考虑使用 putstring 方法:

sp_editor.putString("alarm_activated",String.valueOf(System.currentTimeMillis()));  

但我意识到 alarm_activated 每次都会被覆盖。但我需要所有的“时间”值。 我还可以通过将“时间”添加到键本身来更改键(键、值),如下所示。

sp_editor.putStrng("alarm_activated"+String.valueOf(System.currentTimeMillis(),placeholder);

这看起来是一种非常低效的方法。

有没有其他方法可以做到这一点?

【问题讨论】:

    标签: android sqlite file sharedpreferences


    【解决方案1】:

    执行此操作的正确方法是设置和更新您的应用可以使用的 SQLite 数据库。它将在本地保存和检索数据方面为您提供最大的灵活性,而不必担心如果应用程序被杀死会丢失数据。这是一个很好的tutorial

    【讨论】:

    • 每秒存储一次 SQLite 数据是否明智?我还在运行另外两个并发线程。
    • 为什么要每秒存储一次数据?仅在您的事件发生时存储。
    • 确实如此,但该事件可能每秒发生一次,尽管可能性较小。我可以只使用一个新线程来更新 SQLite 数据库吗?
    • 您应该使用相同的异步任务实例来更新数据库。如果您在这类问题上需要帮助,您应该问另一个问题,因为这并不完全在这个问题的范围内。
    【解决方案2】:

    创建一个单例类并在其中创建可以保存数据的 ListArray。

    如果需要从其他应用访问数据,请使用 Android SQLite。

    【讨论】:

      【解决方案3】:

      你可以像这样创建一个类。

      public class TimeKeeper {
      private static TimeKeeper instance;
      
      public List<String> timeList = new ArrayList<String>();
      
      public static TimeKeeper getTimeKeeper() {
      
          if (instance == null) {
              instance = new TimeKeeper();
          }
          return instance;
      }
      

      }

      从您的 TimerTask 中,您可以将时间添加到列表中

      TimeKeeper.getTimeKeeper().timeList.add("Your Time");
      

      从任何其他活动中,您都可以非常轻松地访问同一个列表。

      如果它适合你,请标记为。

      //======= 要永久保存它,您可以遍历它并将其保存到数据库中。

      for(Strng time :TimeKeeper.getTimeKeeper().timeList)
       {
         db.insertTime(time); //call Your method to insert time string into your db
       }
      

      【讨论】:

      • 如果应用程序被杀死,所有记录的数据都将被删除。我不会使用这个解决方案。
      猜你喜欢
      • 1970-01-01
      • 2019-02-17
      • 2017-05-31
      • 1970-01-01
      • 2015-02-26
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 2018-04-21
      相关资源
      最近更新 更多