0

好的,这就是我的问题:我正在制作一个接收短信的应用程序,并且可以对它们进行排序等等。一切正常,但我现在必须上课,这会导致手机在收到短信时振动、播放声音并点亮屏幕。您登录系统,因此不同的用户将有不同的方式希望应用程序在收到短信时进行通知。我正在创建一个类,该类在构造时会从文件中读取 3 个通知方法的用户设置作为整数,可以为这些整数保存新值,然后可以进行实际通知。我这样做是为了在构造对象时将用户名作为参数,然后从特定于他的文件中读取和写入设置。我的问题是这样的:从文件中保存和检索这些整数的最佳方法是什么?我知道 SharedPreferences,它很容易使用,但我能相信它吗?如果我关闭应用程序,关闭手机,然后重新启动一切,信息还在吗?我目前正在考虑制作一个具有 3 个公共 int 字段的小类,它实现 java.io.Serializable,然后将整个对象保存到一个文件中,这样在我需要它们时很容易获得特定的 int(键/值,就像 SharedPreferences 一样),但我读到这是一个相当缓慢的过程,并且由于该应用程序会收到很多消息(可能每分钟不止一次),因此每次接收时都必须从文件中读取可能会使应用程序有点重,因为电池寿命也很重要。所以这就是我的问题,我应该制作自己的读/写文件系统,

我选择了sharedpreferences,效果很好,谢谢!=)

要详细说明存储的整个性能,需要存储多少数据才能使 sqlite 数据库值得?因为所有这些短信都必须以某种方式存储,而且一次可能有数百条,这对于使用 sqlite 数据库是否足够?因为我在某处读到使用数据库比 io 方式慢一点,直到达到一定数量的数据?我希望数据库是值得的,因为它可能会让事情变得更容易。

4

2 回答 2

1

SharedPreferences 对您保存数据是安全的。这是存储数据的推荐方法之一,请参阅http://developer.android.com/guide/topics/data/data-storage.html

另一种方法,也是非常安全的,是使用具有用户名和这些整数的 Sql 表。只是几个值,这应该很容易实现。在同一链接中有关此的更多信息。

我看不出有任何理由避免使用这两种方法中的任何一种并使用文件系统。它们之前已经被使用过很多次,而且它们只是工作。

于 2012-04-18T18:38:32.990 回答
0

SharedPreferences 应该非常适合您正在做的事情。我实现了将我需要的所有内容存储在首选项中,除了密码。永远不会丢失。

此外,SharedPreferences 也写入文件以及SharedPreferences 文件

除非您希望即使在用户删除应用程序后仍保留这些设置,否则它适合您的目的。

如果你坚持写一个文件,最好的方法可能是将它写为 xml 或 json。后者可能会快一点。然后在适当的时候加载这个文件。

尽管如此,您确实应该考虑很难选择通过 SharedPreferences 写入文件。是值得信赖的!如果您不信任它,请相信我以及其他编写 Android 及其应用程序的人。

于 2012-04-18T18:34:50.180 回答