安卓:后台服务Service的使用

前言:对于Service相信大家一定都不陌生,是安卓的四大组件之一,今儿我只是写一下应该怎么取使用它,简单的写一个吐司。

Service的生命周期:
onCreate():
首次创建服务时,系统将调用此方法。如果服务已在运行,则不会调用此方法,该方法只调用一次。

onStartCommand():
当另一个组件通过调用startService()请求启动服务时,系统将调用此方法。

onDestroy():
当服务不再使用且将被销毁时,系统将调用此方法。

onBind():
当另一个组件通过调用bindService()与服务绑定时,系统将调用此方法。

onUnbind():
当另一个组件通过调用unbindService()与服务解绑时,系统将调用此方法。

onRebind():
当旧的组件与服务解绑后,另一个新的组件与服务绑定,onUnbind()返回true时,系统将调用此方法。

服务:
startService() 启动服务
stopService() 关闭服务
bindService() 绑定服务
unbindService() 解绑服务

首先创建一个类继承Service:

  @Override
    public IBinder onBind(Intent intent) {
        return new MyBind();
    }
    class MyBind extends Binder{
        public void log(){
            Toast.makeText(MyService.this, "服务", Toast.LENGTH_SHORT).show();
        }
    }

后台的服务已经好了,那么开始main中的代码:
new 个ServiceConnection
在onServiceConnected的方法中:

 private ServiceConnection serviceConnection=new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            MyService.MyBind myBind= (MyService.MyBind) service;
            myBind.log();
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {

        }
    };

在main的onCreate中开启绑定服务:

       //意图
       intent = new Intent(this, MyService.class);
       //开启
        startService(intent);
        //绑定
        bindService(intent,serviceConnection,BIND_AUTO_CREATE);

在main的onDestroy中取消绑定服务:

        stopService(intent);
        unbindService(serviceConnection);

你可能感兴趣的:(安卓:后台服务Service的使用)