目录
谈一谈Service的生命周期?
startService:onCreate->onStartCommand->服务运行->onDestroy
bindService:onCreate->onBind->服务运行中->onUnBind->onDestroy
Service的两种启动方式?区别在哪?
startService:直接启动,无绑定
bindService:可以通过binder绑定,实现aidl接口进行交互
如何保证Service不被杀死 ?
1.设置优先级
2.双进程保活,通过aidl监听断开
3.onStartCommand 返回sticky START_STICKY:在Service被关闭后,重新开启Service
4.使用JobService
5.监听各种广播
能否在Service开启耗时操作 ? 怎么做 ?
service运行在主线程,不能做耗时操作,否则会导致ANR。如果一定要做耗时操作,可以创建一个子线程,在子线程中进行耗时操作。IntentService除外,
用过哪些系统Service ?
WindowManager
ActivityManager
AlarmManager
KeyguardManager
WifiManager
LocationManager
PowerManager
等等
了解ActivityManagerService吗?发挥什么作用(重点)
ActivityManagerService 是一个系统核心服务,管理四大组件的生命周期,调度进程,启动或杀死应用程序的进程。(待完善)