Service是Android四大组件之一,是一种运行在后台的服务,通常不需要和用户交互。Service默认是运行在主线程中的,所以Service中不能做耗时操作(超过20秒会ANR)。Service的启动方式分为两种一种是startService一种是bindService。
startService
使用startService方式启动时,Service的生命周期为:onCreate =》onStartCommand =》onDestroy。此种方式service一旦启动就会无限期运行下去,只有调用了stopService或stopSelf此服务才会停止。onCeate方法只有在Service第一次启动时才会调用再次启动不会调用Service的onCeate方法只会调用onStartCommand方法。
Service的使用方式如下:
首先写一个类继承Service
Service作为四大组件之一需要在清单文件中注册
使用
BindService
使用BindService绑定服务时,service的生命周期为onCreate =》onBind =》onUnbind =》onDestroy,bindService是和某个组件进行绑定,绑定之后,如果service绑定的宿主销毁了,service也会销毁。BindService的宿主可以通过IBinder接口获取service的实例,所以能够实现灵活的数据交互。
继承service并实现其方法
清单文件中注册
使用:
IntentService
IntentService中可执行耗时操作,使用方式如下:
此外startService和BindService可以混合绑定,混合绑定的生命周期如下:
先绑定
先启动
网友评论