Service是Android的四大组件之一,主要运行于系统后台。它有两种启动方式:Context.startService()和Context.bindService()都可以启动Service。


1、调用Context.startService()启动

这种启动方式的生命周期是:启动时,startService()---->onCreate()---->onStart();停止时,stopService()---->onDestroy();如果调用者直接退出而没有停止Service,Service会在后台一直运行。调用startService()前,如果被调用的Service未被创建,则会先调用onCreate(),如果Service已经被创建,则不会调用onCreate(),而会直接调用onStart()。所以多次调用startService()并不会多次创建Service,但会多次调用onStart()方法。而且用startService()启动的Service,必须用stopService结束,服务结束时会调用onDestroy()。


2、调用Context.bindService()启动

    这种启动方式的生命周期是:启动时,bindService()---->onCreate()---->onBind();调用者退出时,unbindService()---->onUnbind()---->onDestroy();bindService(intent,conn,Service.BIND_AUTO_CREATE):

第一个参数是Intent对象;

第二个参数是ServiceConnection对象,创建这个对象是为了实现下面两个方法:

public void onServiceConnected(ComponentName className, IBinder service) {            //}public void onServiceDisconnected(ComponentName className) {            //}
实现这两个方法是为了判断服务的连接成功和断开连接。

第三个参数是创建服务的方式,一般为Service.BIND_AUTO_CREATE,绑定服务的时候自动创建。

更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. Android(安卓)Drawable 对象复制、拷贝
  3. Android之Handler的postDelayed()方法的用法
  4. someone's android note
  5. [置顶] Android-->Rxjava与Retrofit2的结合实战
  6. Android(安卓)SharedPreferences的使用
  7. android相机拍照
  8. android stdio 设置屏幕旋转后保存数据
  9. Android(安卓)opencv人脸识别

随机推荐

  1. Android(安卓)NDK带来什么???
  2. linux公社的大了免费在线android资料
  3. 关于android的animation的xml定义中的and
  4. FlycoDialog_Master 强大的Android对话框
  5. android 学习笔记 - 1 环境搭建
  6. android List拖动时背景变化
  7. Android设备和PC设备有线USB连接双向通信
  8. android 资源res下目录使用
  9. cocos2dx程序 在android上 触碰屏幕就崩
  10. Android(安卓)笔记