Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android,保存动态UI的状态:SQLite vs平面文件_Android_Sqlite_Storage - Fatal编程技术网

Android,保存动态UI的状态:SQLite vs平面文件

Android,保存动态UI的状态:SQLite vs平面文件,android,sqlite,storage,Android,Sqlite,Storage,在我的应用程序中,我有一个动态UI(通过布局膨胀创建),它主要由计时器组成,用户可以启动和停止 我已经用saveInstanceState()和bundle实现了屏幕旋转 现在我想知道,当用户愿意离开应用程序时,如何保持UI状态。我有一个由线程更新的文本视图列表(如果计时器正在运行)。因此,为了重新创建UI的状态,我必须保存以下信息:剩余时间(长)、开始时间(真或假)、顺序(将每个计时器放置在正确的位置) 由于我不必进行查询或搜索,只需遍历整个数据并重新创建计时器,因此我认为在这种情况下,每个计

在我的应用程序中,我有一个动态UI(通过布局膨胀创建),它主要由计时器组成,用户可以启动和停止

我已经用saveInstanceState()和bundle实现了屏幕旋转

现在我想知道,当用户愿意离开应用程序时,如何保持UI状态。我有一个由线程更新的文本视图列表(如果计时器正在运行)。因此,为了重新创建UI的状态,我必须保存以下信息:剩余时间(长)、开始时间(真或假)、顺序(将每个计时器放置在正确的位置)

由于我不必进行查询或搜索,只需遍历整个数据并重新创建计时器,因此我认为在这种情况下,每个计时器一行的平面文件会更好


我错了吗?我应该使用SQLite吗?

正如@Hiemanshu建议的那样,最好将可拆分字符串存储在SharedReferences中

为什么不使用SharedReferences呢?非常容易实现。我认为需要一个有序的列表,每次只保存和检索一行文件会更好。但你可能是对的。我可以得到所有首选项的大小,然后得到在键上迭代的值。键的顺序是int,这样我就可以像prefs.get(I)for I=0一样对prefs.getAll().size()执行操作,因为您有一个项目列表,您可以为列表创建一个方法,将它们作为单个字符串,可以将其分解为多个字符串,或者每个键放置一个字符串。它们都适用于您的用例。