我有一个混合案例IDL服务,我用2种方式:
所以我的问题是
答案 0 :(得分:1)
对于场景#1,价格是多少(如果 任何)我付钱给使用服务 网络呼叫而不是创建 后台线程直接在 活动?
我假设,因为你说这是一个“IDL服务”,这就是我所说的远程服务 - 你正在使用AIDL定义一个跨进程边界使用的接口。
在这种情况下,第二个进程的成本是几MB的RAM,加上IPC开销的一些CPU时间。 “CPU时间”的多少取决于它的调用频率。
对于#2 - 我最好改变 实现到AlarmManager?
一般来说,是的。理想情况下,服务尽可能少地存储在内存中。
当我杀死进程时,我注意到了 与TasKiller我的服务死了 会永远不会重新启动 基于AlarmManager的工作更好 恢复的机会?
不,因为“任务杀手”应用程序倾向于滥用API(用Dianne Hackborn的话来说)会杀掉一切,包括预定的警报。目前,没有可靠的&有效防御我所知道的“任务杀手”。