第五章 服务(Service)

第五章 服务(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信息显示在状态栏上

下一篇:第六章 数据存储 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值