alm*_*oft 20 service android sharedpreferences
我的应用程序使用SharedPreferences(在PreferenceActivity的帮助下)存储所有设置.但有时会删除所有设置,并将所有值设置回默认值.主要在Android 3.x标签上.在普通的智能手机上没有问题.
我发现,当应用程序进程被Android杀死时,所有设置都会被删除.我注意到了这一点,因为不再显示通知图标.我也想知道为什么这个过程会在平板电脑而不是智能手机上被杀死.在我的智能手机上,通知图标永远不会消失.
我的应用程序还有一个服务,主要进程和服务都对SharedPreferences进行读写设置.我有时会注意到,一旦服务写入SharedPreferences,所有设置都会被清除.但它并不是每次都会发生.
有任何想法吗?我意识到SharedPreferences不应该被不同的进程使用,但它适用于所有智能手机而没有问题!
alm*_*oft 20
我找到了设置消失的原因:如果两个进程将数据写入SharedPreferences,则可能会发生所有SharedPreferences重置为默认值.在我的情况下,当服务将第一个数据写入SharedPreferences时,将清除所有设置.
现在,该服务仅提供对SharedPreferences的读访问权限.两个进程写入访问的设置都存储在数据库中.
SharedPreferences 通常工作得很好,正如您所提到的,在智能手机上没有任何问题。它也应该适用于平板电脑。然而,最好使用 sqlite 或在服务器上支持每个用户 ID 数据丢失的共享首选项。
| 归档时间: |
|
| 查看次数: |
7575 次 |
| 最近记录: |