Android Service那点事

1、Service到底是什么?

Service是Android程序的一部分就像Activity一样,只是Service是不露面的,主要执行一些后台程序,Service运行在主程序MainThread,就是应用UI主线程。

2、Service能干啥?

Service作为主程序的一部分,如果在Service中执行耗时程序将会导致UI阻塞,那么使用Serivce还不如直接使用Thread异步操作耗时程序。虽然Thread可实现多线程,但是Thread在使用时容易失控,而Service作为Android的组件之一,有严格的生命周期,使用Service时可以在不同生命阶段做不同操作,耗时程序可以在Service中新开独立线程。

3、Service的启动方式

BindService:将服务绑定到某个clients上,可通过IPC机制实现通信,onCreate()方法只执行一次。在Unbind或绑定的context消失后Service结束。

StartService:通过StartService启动,onCreate()方法只执行一次,onStartCommand()方法每次执行。在stopService或finishSelf时结束。

BindService+StartService:同时满足两个条件才可以关闭service。

4、LocalService和RemoteService

LocalService在原来进程中,而RemoteService在独立进程的主线程运行,RemoteService的申明需要加process属性android:process=“:name”,name可任意定义。

5、杀不死的后台服务

在平时的使用中会发现很多的应用服务无法通过第三方工具(360)关闭释放内存。这个和工具白名单有关系。另外有些是通过两个服务之间互相监控避免被杀死。

在Service的生命周期中加入自启动代码也是会被第三方清理工具关闭。

本文源自对其他博客的摘录总结,原文讲解非常详细

http://www.cnblogs.com/newcj/archive/2011/05/30/2061370.html


下面附上我的一点demo,demo是源自官方开发文档:

https://yunpan.cn/cxTVFx93LKyIC  访问密码 cbb1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值