有人知道Android中服务的开销有多大。
如果有任何其他论据帮助我做出以下设计决定。
我有两个SQLite Dbs,一个存储实际数据(基本上只读产品库存),另一个存储设置,所选项目列表等。
现在我创建了一个服务来管理这些数据库,主要有两个原因:
从设计角度来看,我可以:
为每个数据库创建单独的服务感觉更干净,例如扩展通用基类来处理关机,定时器等。它还允许我独立配置它们(现在不需要)。
另一方面,我不想开始走这条路,然后,当我习惯在“服务”中做这样的事情时发现有3或5个服务的限制。
那么如何开销? 5个运行服务,而不是一个托管5个不同功能的服务?有什么想法吗?
答案 0 :(得分:1)
在您的情况下,Android有效支持的服务数量无需担心。看过一些任务管理器中运行服务的列表后,我倾向于说大多数设备上最多可以运行~100个“运行”服务。
但是,我不确定你实际上要做什么应该在服务中实现。你能详细说明你认为自己需要服务的原因吗?
我希望能够“保存在关闭”(设置),这可以使用onDestroy
您不能在正常的Activity生命周期回调中执行此操作吗?
加载数据需要一些时间,因此快速关闭应用会将数据保存在内存中
“快速关闭”是什么意思?您是否尝试为DB数据构建某种缓存?
答案 1 :(得分:1)
答案 2 :(得分:0)
如果服务是RemoteServices,那么它们将在一个单独的进程中启动,这会增加开销并且占用大量内存。
尝试为这两种方案使用单一服务。