3

有谁知道Android中服务的开销有多大。
如果有任何其他论点可以帮助我做出以下设计决定。

我有两个 SQLite Db,一个存储实际数据(基本上只读产品库存),另一个存储设置、选定项目列表等。

现在我创建了一个服务来管理这些数据库,主要有两个原因:

  • 我希望能够“保存关闭”(设置),这可以通过 onDestroy
  • 加载数据需要一些时间,因此快速关闭应用程序会将数据保留在内存中

从设计的角度来看,我可以:

  • 创建一个处理两个数据库的服务
  • 创建两个服务,每个服务处理一个数据库

为每个数据库创建一个单独的服务感觉更干净,例如扩展一个通用基类来处理关机、计时器等。它还允许我独立配置它们(现在不需要)。

另一方面,我不想开始走这条路,然后,当我习惯在“服务”中做这样的事情时,发现有 3 或 5 个服务的限制。

那么,例如 5 个运行服务的开销与托管 5 个不同功能的一个服务的开销如何?有任何想法吗?

4

3 回答 3

1

在您的情况下,Android 有效支持的服务数量应该不用担心。在某些任务管理器中查看了正在运行的服务列表后,我倾向于说在大多数设备上最多 100 个“正在运行”的服务应该没有问题。

但是,我不确定您实际尝试做的事情是否应该在服务中实现。你能详细说明为什么你认为你需要一项服务吗?

我希望能够“保存关闭”(设置),这可以通过 onDestroy

你不能在正常的 Activity 生命周期回调中这样做吗?

加载数据需要一些时间,因此快速关闭应用程序会将数据保留在内存中

“快速关闭”是什么意思?您是否正在尝试为数据库数据构建某种缓存

于 2011-11-10T17:14:40.853 回答
1

从 Android 开发文档...

谨慎使用服务

http://developer.android.com/training/articles/memory.html#Services

于 2015-11-19T21:18:12.247 回答
0

如果服务是 RemoteServices,那么它们会在一个单独的进程中启动,这会增加开销并且是内存密集型的。

尝试在这两种情况下使用单一服务。

于 2011-11-10T17:14:11.407 回答