android Service 一些思考

看了Android面试一天一题(1 Day),对Service 的一些总结与思考

作者原文章链接: http://www.jianshu.com/p/7a7db9f8692d

作者用几个简短的问题已经问到了service 的精华; 读完以后根据自己的理解/先前的项目经验进行了一些总结以及延伸,如有错误的地方,请大家指正。 

1. 前台UI(Activity ) 与后台任务之间的执行情况可以分为以下三种情景: 

      (1): UI 退出,后台任务退出。像此种情况采用Thread 或者AsyncTask 实现后台加载任务就可以

      (2): UI 退出,后台任务不退出;UI重新启动时,两者不需要同步进度信息。这种情况可以考虑用Service 实现后台任务的执行,不用考虑Service 与UI的通信问题

      (3):UI 退出,后台任务不退出;当UI重新启动时,后台Service  需要与前台UI同步进度等相关信息。此种情况需要考虑状态的保存恢复以及Service 与 UI通信问题  

2.  对于后台Service,如果业务需求要求Service  的生命周期和应用进程生命周期一样;可以考虑用静态实例类的方案来代替Service 的方案 

3. IntentService 底层实现异步任务加载的机制适用于不需要并发执行的环境;但是对于后台需要同时执行多个任务的情况,还是采用Service + 线程池的方案比较合适,例如音乐App后台下载MP3 文件处理的任务。    

你可能感兴趣的:(android Service 一些思考)