您的位置:首页 > 移动开发 > Android开发

Android—四大组件之Service

2014-07-14 14:02 211 查看
一、概述

Android中有两种方式开启一个服务,但它们的生命周期有所不同。

二、第一种方式调用startService启动服务:

1、当服务未启动,如果调用startService第一次启动服务会回调方法顺序为:onCreate -> onStart

2、当服务已启动,如果调用startSerivce启动服务只会回调方法为:onStart

3、当服务已启动,如果外部组件调用stopSerivce或内部调用stopSelf或stopSelfResult关闭服务会回调方法为:onDestroy

说明:这种服务不会因为服务创建者销毁而销毁,可能会因为系统内存紧张时被系统强制销毁(可以改变Serivice优先级延长它被销毁的时间)。无论启动多少次服务,只需要调用一次关闭服务就可以关闭服务。

三、第二种方式调用bindService绑定服务

1、当服务未启动,如果调用bindService第一次绑定服务会回调方法顺序为:onCreate -> onBind -> onServiceConnected

2、当服务已启动,如果服务创建者再次调用bindSerivice不会回调任何方法,而非服务创建者调用bindService第一次绑定服务只会回调方法为:onServiceConnected

3、当服务已启动,如果非服务创建者调用unbindService会解除与之服务的绑定,但不会回调任何方法。而服务创建者调用unbindService会回调方法顺序为:onUnbind ->onDestroy

说明:这种服务会因为服务创建者的销毁而销毁,而且会回调方法顺序为:onUnbind -> onDestroy。无论非服务创建者调用多少次unbindService解除绑定,都不会关闭服务(解除自身与服务的绑定关系)。而只有服务创建者自己调用unbindService才会关闭服务。

注意:如果退出程序时使用System.exit(0)或者Process.killProcess(Process.myPid())方式完全退出,那么以调用startService启动服务的服务会中断然后再重启,以至于会回调方法顺序为:onCreate -> onStart。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: