首页 > 代码库 > 安卓学习之服务基本用法
安卓学习之服务基本用法
服务的生命周期
服务被启动后,会回调onStartCommand()方法, 如果这个服务是第一次创建,那么会调用onCreate()方法。服务启动之后会一直运行直到stopService()或stopSelf()方法被调用。虽然每调用一次 startService()方法,
但是服务只会存在一个实例。所以不管调用几次startService()方法,只需调用一次 stopService()或 stopSelf()方法,服务就会停止下来了。
调用 Context的bindService()方法,可以获取服务的连接,这时候就会调用服务的onBind()方法,返回IBinder对象的实例, 这样就能和服务进行通信了。只要和服务的连接没有断开,服务就会一直保持运行状态。
所以当调用startService()方法后,又去调用stopService()方法,这时服务中的onDestroy()方法就会执行,表示服务销毁。当调用了 bindService()方法后,又去调用unbindService()方法,onDestroy()方法也会执行。如果一个活动被调用了startService()和bindService()方法,那么我们就要同时调用stopService()和unbindService()方法,这样onDestory()方法才会被执行。
这些就遍历了服务的生命周期。
服务
服务要在AndroidManifest.xml中注册
服务的创建:
public class LongRunningService extends Service { @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { super.onDestroy(); }}
onBind()方法是一个抽象类,所以必须实现它。当服务第一次调用时,就会调用onCreate(),调用onStartCommand()方法。 之后调用服务就不会在调用onCreate()方法,直接调用onStartCommand()方法。onDestory()方法
会在服务销毁时调用。
安卓学习之服务基本用法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。