Service
2017-12-12 本文已影响3人
魂之挽歌w
Service的引入
有的操作比较耗时(如:文件IO操作,大量数据的数据库操作,访问网络等),我们希望它们在后台运行,不耽误当前的操作,这就引入了Service概念.
Android中的服务类似windows中的服务,一般没有用户操作界面,它运行于系统中不容易被用户发觉
服务的生命周期回调方法
当采用Context.startService()方法启动服务,与之有关的生命周期方法
onCreate()----->onStartCommand()----->onDestroy()
onCreate()该方法在服务被创建时调用,该方法只会被调用一次,无论调用多少次startService()或bindService()方法,服务也只被创建一次!!!
onStartCommand() 只有采用Context.startService()方法启动服务时才会回调该方法.该方法在服务开始运行时被调用.
多次调用startService()方法尽管不会多次创建服务实例,但onStartCommand()方法会被多次调用.
onDestroy()该方法在服务被终止时调用.
当采用Context.bindService()方法启动服务,与之有关的生命周期方法
onCreate()----->onBind()----->onUnbind()----->onDestroy()
IntentService
intentService是为了解决程序员忘记结束服务和处理长时间任务而提出的
所以,其内部开启了一个子线程且结束时自动关闭,与使用普通Service 没有区别