第五章 服务(Service)

版权声明:未经王小波同学允许不得转载本文内容,否则将视为侵权;博主qq:1419758909;反正也没人转载~ https://blog.csdn.net/qq_38900441/article/details/84898112

第五章 服务(Service)

Service提供程序的后台服务,分为本地服务和远程服务两种类型

Service特点

没有用户界面,不与用户交互

长时间运行,不占程序控制权

比Activity优先级高,不会轻易被Android系统终止,即使Service被系统终止,在系统资源恢复后Service仍将自动运行

用于进程间通信,解决两个不同进程之间的调用和通信问题

实现Service

创建一个Service类并配置

启动并绑定Service

停止Service

Service生命周期

onCreate()方法用来初始化Service,标志着Service生命周期的开始

onStart()用来启动一个Service,代表Service进入了运行状态

onDestroy()方法用来释放Service占用的资源,标志着Service生命周期的结束

Service的启动方式:

启动方式:

使用Context.startService()方法启动Service,调用者与Service没有关联,即使调用者退出,Service服务依然运行

调用Context.stopService()或Service.stopSelf()方法结束服务 

启动Service的代码:

Inten inten = new Intent();

inten.setAction(".MY_SERVICE");

intent.setPackage(getPackageName());

startService(intent);

è¿éåå¾çæè¿°

绑定方式:

通过Context.bindService()方法启动Service,调用者与Service绑定在一起,调用者一旦退出,Service服务也就终止

通过调用Context.unbindservice()解除绑定服务 

è¿éåå¾çæè¿°

Myservice 类覆盖Sevice生命周期的各个方法

public class Myservice extends Service {
    public IBinder onBind(Intent intent){
        Log.i("service","on bind-----");
        Toast.makeText(Myservice.this,"onBind---",Toast.LENGTH_LONG).show();
        return new MyBinder();
    }
    public void onCreate(){
        Log.i("service","on create-----");
        Toast.makeText(Myservice.this,"onCreate---",Toast.LENGTH_LONG).show();

    }
    public void onStart(Intent intent,int startId){
        Log.i("service","on start-----");
        Toast.makeText(Myservice.this,"onStart---",Toast.LENGTH_LONG).show();
    }
    public void onDestroy(){
        Log.i("service","on destroy-----");
        Toast.makeText(Myservice.this,"onDestroy---",Toast.LENGTH_LONG).show();
    }
    public class MyBinder extends Binder{
        public Myservice getService(){
            return Myservice.this;
        }
    }
}

--Android提供大量的系统服务,这些系统服务用于完成不同的功能,通过Context.getSystemService()获取不同服务管理对象

--NotificationManager类是系统的通知服务管理类,它能够将通知Notification信息显示在状态栏上

下一篇:第六章 数据存储 

猜你喜欢

转载自blog.csdn.net/qq_38900441/article/details/84898112