2017-07-22 11 views
0

我有一些活动和一个服务工作在不同的线程。例如,该服务已收到来自服务器的响应,并将其发送给活动活动。 但是当收到来自服务器的响应时,应用程序可能不会处于活动状态。我想从某个地方的响应中保存我的对象,然后再次打开该应用程序,发送通知并且当前活动的活动获取响应。如何在Android中保存对象,以便单独线程中的活动和服务可以访问此对象?

我知道我可以使用数据库,但在这种情况下它会是多余的,因为我只需要保存最后一个响应。我正在考虑创建一个数据库,但只为一个对象这样做并不完全合理。

你能建议一个聪明的方式,我该怎么做? 谢谢你的时间。

+0

[SharedPreferences](https: //developer.android.com/training/basics/data-storage/shared-preferences.html)? – 0X0nosugar

+0

我可以从这篇文章的回答([https://stackoverflow.com/questions/7057845/save-arraylist-to-sharedpreferences])得出结论,为此,有必要序列化对象数组,而不是最好的主意。我有一些想法把我的数组放在App.class中的静态列表。你怎么看待这件事? –

+0

个人而言,我不知道如何使用静态变量。我更喜欢[将数据保存到某个文件](https://developer.android.com/guide/topics/data/data-storage.html#filesInternal)。像[this]这样的问题(https://stackoverflow.com/questions/40595803/android-static-variables-are-lost)表明你的方法可能无法可靠地工作。这不是说答案解释了为什么它不能工作,只是有人试图使用静态变量,并且不知怎的,事情并没有像预期的那样工作 – 0X0nosugar

回答

0

将数据放入数据库中。即使这看起来过于夸张,这也是最简单和最稳健的方法。无论如何,SQLite非常轻量级。您可以将数据串行化为字符串或字节流并以此方式进行存储,也可以为数据创建结构化模式并将其作为多行,列,表格等存储。

相关问题