2

我有一个应用程序可以在活动之间将一些复杂的数据保存在内存中。

至于现在我使用一个在 getter 和 setter 中使用的Singleton类。SharedPreferences

我想要什么:只要我的应用程序在最近的应用程序中运行并显示,我希望一个类永远不会被释放或找到一种方法来实现这一点而不会产生任何后果。

  • 所以我想知道,我有更好的方法吗?
  • 服务会更好吗?
  • 如果是这样,我应该启动和/或绑定它吗?
4

1 回答 1

3

如果您使用服务,则不会绑定它,因为取消绑定可能会导致它停止。

您可以创建一个静态对象并在自定义应用程序类中创建它。因此,只要您的应用程序处于活动状态,该对象就由强引用持有。

或组合,使用单例类但让应用程序类存储引用以防止垃圾收集(GC)

聊天后:

在自己的进程中运行的服务应该是您可以构建的最持久的东西。但是,您需要通过 AIDL 与服务进行通信,这是一个跨进程桥,如果通信是高速的,它会提高性能。

于 2012-11-29T11:53:34.693 回答