我有一个混合案例 IDL 服务,我以两种方式使用它:
- 该服务将生成一个线程并进行网络调用以代表 Activity 获取一些 XML 内容。内容通过定义回调方法的客户端IDL返回给Activity
- 如果用户选择通知选项,则服务会创建一个重复执行的计时器并创建一个工具栏通知。它还缓存了内容,因此当 Activity 请求更新时,它是从缓存中提供的,而不是另一个网络调用
所以我的问题是
- 对于场景 #1,我为使用网络调用服务而不是直接在 Activity 中创建后台线程付出的代价是多少(如果有的话)?
- 对于#2 - 我最好将实现更改为 AlarmManager 吗?我注意到,当我使用 TasKiller 杀死进程时,我的服务会死掉并且永远不会重新启动,AlarmManager-base 作业是否有更好的恢复机会?