Service:Android中在后台长时间运行而不使用界面的组件,运行于主线程,所以不能执行耗时操作。
IntentService:继承于Service,与Service不同的是,在执行onCreate方法时,内部开启了一个线程用于执行耗时操作,在使用时,可以在onHandlerIntent方法中执行耗时操作,该方法处理任务时采取了异步方法,即一个完成再执行下一个。
Service的生命周期:
1、startService
onCreate() onStartCommand() onDestroy()
如果一个Service被startService启动,该Service会一直在后台运行,与activity是否在运行无关;如果一个service被startService多次启动,onCreate方法只会调用一次,onstartCommand方法会调用多次,系统只会创建Service的一个实例(即只需要执行一次stopService),该service会在调用stopService后销毁(该service只被startService启动的情况下)。
2、bindService
onCreate() onbind() onUnbind() onDestroy()
如果一个service被activity使用bindservice启动,该service会与该activity绑定,如果一个service被bindservice多次调用,onCreate方法和onbind方法只会执行一次,该service会在activity销毁或者调用unbind方法后销毁
3、由于intentService在执行耗时操作时如果与activity生命周期相关会出现问题,所以intentService只能使用startService调用,使用bindService无效。
网友评论