我需要在我的服务中保留一个复杂的对象,所以我可以可靠地回到它(它保存更新)。最初我将它编码为我的Service实现中的一个类,但我观察到更新对象会定期重置为null,这告诉我服务器类本身已重新创建。有人可以推荐轻量级可靠的策略来保存和重新创建这样的更新对象(我可以使它可序列化)
答案 0 :(得分:4)
重新启动服务后,将调用onStop()
和onStart()
方法。您可以使用onStop()
方法将数据保存到固定位置,例如应用程序sqlite
数据库。您可以在调用onStart()
时恢复数据。
您可以阅读有关在Android开发人员website上使用sqlite
数据库的信息。
答案 1 :(得分:3)
如果我这样做,我会使用SharedPreferences。如果它太复杂了,我同意@Scharrels关于使用sqlite数据库(这很可能是谷歌推荐的,因为他们的例子在最小的情况下使用sqlite,这意味着它具有合理的性能水平)。
我发现SharedPreferences在许多情况下都很有用。首先,作为键值配对存储,可以轻松存储各种不同的数据,如果需要,还可以将对象编码为字符串,并将它们存储在单个字段中。其次,您可以使用多个SharedPreference存储,只需检索不同名称的存储(同时仍保持私有)。最后,我发现它们易于使用,因为获取数据和存储数据实际上只是几行代码(不包括您可能需要的任何数据变换或序列化)。