Android知识点:Service

一、什么是Service?

      service是运行在后台,没有提供用户界面、具有自己独立生命周期的应用组件。运行在ui线程,所以也不能执行耗时操作

二、Service和Thread的相同点与区别

      相同点:后台运行,用户不可见

       区别:

                 1、service拥有自己独立的生命周期,thread一般依赖于其他组件。 

                 2、service 运行在主线程,不能执行耗时操作。thread运行子线程,一般用于执行耗时的操作。

三、Service的使用

       同actiity一样,需要在清单文件中注册。并集成Service。启动方式有两种,startService(Intent i) 和 bindService(Intent i);

       关闭Service,stopService(Intent i)或stopSelf()或 unbindService(Intent i); 当使用bindService启动的时候,使用unbindService解除跟其他组件的绑定;

四、生命周期

       根据启动方式和关闭方式的不同,生命周期也不一样。

      1、通过startService()方法启动: onCreate()》onStartComand()》onStart(已不推荐使用了)》onDestroy()

      2、通过bindService()方式与组件绑定方式启动:onCreate()》onBind() 》onDestroy()

 

          
 五、Service保活技术

参考文献:https://blog.csdn.net/qq_38520096/article/details/79007228

参考文献:https://blog.csdn.net/nightwizard2030/article/details/78441212    

总结:

          5.0以上,7.0以下的系统:
       1、提高优先级,设置为前台进程

       2、提供 jobService 重新再拉起Service

       3、广播:如 接收wifi的广播,再启动Service

       4、开机自启动

 

7.0 以上,goole控制了很多。以上方法被控制减少自启动

      但是也是有如下方法可以,但不能百分之百:

      1、双进程守护,即开启另外一个Service,去相互唤起

     2、在被kill的时候,执行onDestroy回调的时候再唤起其他进程,再用另外经常去唤起Service

   

      

 

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值