Sevice(服务)

特点:

后台运行,不可见,没有界面;

优先级高于Activity;

用途:

播放音乐,记录地理信息位置的告白,监听某种动作...

注意:

运行在主线程,不能用它来做耗时的请求或者动作

可以在服务中开一个线程,在线程中作耗时操作

类型:

本地服务(Local Service):

应用程序内部:

startService stopService stopSelf stopSelfResult

bindService unbindService

远程服务:(Remote Service):

Android系统内部的应用程序之间(同设备)

定义IBinder接口

生命周期:

左边是start方式启动的生命周期,右边是bind方式启动的生命周期:

Sevice(服务)_第1张图片

Start方式特点:

服务跟启动源没有任何联系;

无法得到服务对象;

Bind方式特点:

通过Ibinder接口实例,返回一个ServiceConnection对象给启动源

通过ServiceConnetion对象的相关方法可以得到Service对象

start方式启动:

start方式销毁:

自定义Service类:

Sevice(服务)_第2张图片

bind方式启动:

Sevice(服务)_第3张图片

bind方式销毁:

自定义Service类:

```

public class MyBindService extends Service {

    @Override

    public void onCreate() {

        super.onCreate();

    }

    public IBinder onBind(Intent intent) {

//        IBinder这里无法直接使用,需要自己重写一个类去继承Binder

        return new MyBinder();

    }

    public class MyBinder extends Binder{

        public MyBindService getService(){

            return MyBindService.this;

        }

    }

    @Override

    public boolean onUnbind(Intent intent) {

        return super.onUnbind(intent);

    }

//定义4个方法模拟播放器

    @Override

    public void onDestroy() {

        super.onDestroy();

    }

    public void play(){

        Log.e("tyl","播放");

    }

    public void pause(){

        Log.e("tyl","暂停");

    }

    public void next(){

        Log.e("tyl","下一首");

    }

    public void pervious(){

        Log.e("tyl","上一首");

    }

}

```

注册(两种方式一样):

你可能感兴趣的:(Sevice(服务))