【发布时间】:2012-04-18 18:19:56
【问题描述】:
好的,这是我的问题:
我正在制作一个接收短信的应用程序,并且可以对它们进行排序等等。一切正常,但我现在必须上课,这会导致手机在收到短信时振动、播放声音并点亮屏幕。您登录系统,因此不同的用户将有不同的方式希望应用程序在收到短信时进行通知。
我正在创建一个类,该类在构造时会从文件中读取 3 个通知方法的用户设置作为整数,可以为这些整数保存新值,然后可以进行实际通知。我这样做是为了在构造对象时将用户名作为参数,然后从特定于他的文件中读取和写入设置。
我的问题是:从文件中保存和检索这些整数的最佳方法是什么?
我知道 SharedPreferences,它很容易使用,但我能相信它吗?如果我关闭应用程序,关闭手机,然后重新启动一切,信息还在吗?
我目前正在考虑制作一个具有 3 个公共 int 字段的小类,它实现 java.io.Serializable,然后将整个对象保存到一个文件中,这样在我需要它们时很容易获得特定的 int(键/值,就像 SharedPreferences 一样),但我读到这是一个相当缓慢的过程,并且由于该应用程序会收到很多消息(可能每分钟不止一次),因此每次接收时都必须从文件中读取可能会使应用程序有点重,因为电池寿命也很重要。
所以这就是我的问题,我应该制作自己的读/写文件系统,还是我可以相信 SharedPreferences 永远不会丢失任何数据?
我选择了sharedpreferences,效果很好,谢谢! =)
为了详细说明存储的整个性能,需要存储多少数据才能使 sqlite 数据库值得?因为所有这些短信都必须以某种方式存储,而且一次可能有数百条,这对于使用 sqlite 数据库是否足够?因为我在某处读到使用数据库比 io 方式慢一点,直到达到一定数量的数据?我希望数据库是值得的,因为它可能会让事情变得更容易。
【问题讨论】:
标签: android performance file-io