2014-10-03 18 views
0

我正在开发一个记事本应用程序,它可以存储简单的文本文件和清单。目前,我维护一个单独的文件(比如info.txt),它保存有关给定文件是简单文本文件还是清单的信息,并基于该文件呈现我的UI(用于列出所有文件或打开文件)以显示文件在我的应用程序。不过,我对这种方法并不满意,因为速度很慢,看起来好像不太好。Android:关于文件的元数据

有没有更好的方法来添加关于Android中的文件的“元数据”(例如,如果它是一个简单的文本或cheklist,标签等)?

任何帮助,将不胜感激

+0

你看过Android的[SharedPreferences](http://developer.android.com/reference/android/content/SharedPreferences.html)吗?关于它也有一个很好的问题[这里](http://stackoverflow.com/questions/3624280/how-to-use-sharedpreferences-in-android-to-store-fetch-and-edit-values)。 – 2014-10-03 19:56:13

+0

是的,伊恩。 SharedPreferences已经超出了我的想法。我想知道这是否是最好的方法,特别是如果我想开始为文件添加“标签”。不确定搜索将如何缩放。如果我想用特定的标签搜索所有文件,它会工作的很好。还有SQL-lite(我从来没有用过这个)......不知道这是如何工作的 – user3268403 2014-10-03 20:02:46

+0

SQL-lite可能会更好,如果你打算在数据上运行查询,就像你提到用特定标签查找文件一样,尽管在我看来,建立起来比共享的先发制人要困难得多。 SQL-lite将会更加灵活,以至于你开始添加功能 – 2014-10-03 22:44:23

回答

0

还有的storing persistent data in Android几种方法。

您目前的做法是通过设备存储,而且您非常正确,除了可以直接访问用户,也就是说他们可以编辑或删除元数据之外,它可能无法很好地扩展。

使用SharedPreferences将是存储元数据的一种方式,其优点是对用户完全隐藏,并且相对容易设置。我可以看到的主要缺点是,如果用户拥有大量文件,它可能无法很好地扩展,并且如评论中提到的那样,检索具有特定标准的文件(例如某个标记)要困难得多。

存储数据的最佳方式是可以很好地扩展并保持持久性,并让您对数据运行查询将在设备SQLite database上运行。 SQLite通常在安装时间方面会有更多的开销,但是除了可能基于网络的存储之外,其他任何选项都比其他任何选项强大得多,基于您提供的信息可能不是您感兴趣的内容。你的问题SQLite数据库可能是要走的路,并且如果你决定添加更多的信息,甚至将文件存储在SQLite数据库中,你可以获得可扩展的奖励。