版权声明:未经王小波同学允许不得转载本文内容,否则将视为侵权;博主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信息显示在状态栏上
下一篇:第六章 数据存储