Android之Android下service详解
来源:互联网 发布:mysql 热备 编辑:程序博客网 时间:2024/05/16 05:53
什么是Service服务
Service是android四大组件之一,没有显示的页面,在每一个应用程序战功扮演这非常重要的角色。主要用于在后台处理一些耗时的逻辑操作,或者去执行某些需要长期运行的任务,必要的时候我们可以在程序退出的时候,还让service在后台继续的保持运行状态。
服务的开启方式
1. startService();
2. bindService();
服务的生命周期
· 如果是startService,那么的它的生命周期是:
1. onCreate()--> onStartCommand() --> onStart() -->onDestroy();
2. .服务只会被创建一次,多次调用startService,不会多次调用onCreate()方法,
会执行onStartCommand() --> onStart() --> onDestory()方法;
3. 一旦服务开启,就于调用者无关,即使Activity销毁了,服务依然存在进程中;
4. 外界不可以调用服务里面的方法
· 如果是bindService,那么它的生命周期是:
1. onCreate() --> onBindService() --> onUnBindService() --> onDestory();
2. 服务可以被绑定一次,一旦绑定成功,就不可多次绑定,否则就回解绑失败
3. bind方式,只可以解绑一次,多次解绑,应用程序会异常退出
4. 不求同生,但求同死,bind的服务和调用者的生命周期一致
5. 外界可以调用服务里面的方法
1.音乐播放器,在服务里面提供上一曲,下一曲,播放,暂停等
2.qq,微信接收离线消息
本文版权归传智播客Android培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Android培训学院
首发:http://www.itcast.cn/android/
Service是android四大组件之一,没有显示的页面,在每一个应用程序战功扮演这非常重要的角色。主要用于在后台处理一些耗时的逻辑操作,或者去执行某些需要长期运行的任务,必要的时候我们可以在程序退出的时候,还让service在后台继续的保持运行状态。
服务的开启方式
1. startService();
2. bindService();
服务的生命周期
· 如果是startService,那么的它的生命周期是:
1. onCreate()--> onStartCommand() --> onStart() -->onDestroy();
2. .服务只会被创建一次,多次调用startService,不会多次调用onCreate()方法,
会执行onStartCommand() --> onStart() --> onDestory()方法;
3. 一旦服务开启,就于调用者无关,即使Activity销毁了,服务依然存在进程中;
4. 外界不可以调用服务里面的方法
· 如果是bindService,那么它的生命周期是:
1. onCreate() --> onBindService() --> onUnBindService() --> onDestory();
2. 服务可以被绑定一次,一旦绑定成功,就不可多次绑定,否则就回解绑失败
3. bind方式,只可以解绑一次,多次解绑,应用程序会异常退出
4. 不求同生,但求同死,bind的服务和调用者的生命周期一致
5. 外界可以调用服务里面的方法
混合调用服务的生命周期处理
为了保证服务长期在后台运行,同时又想调用服务里面的方法
startService()开启服务
bindService()调用服务里面的方法
unBindService()解绑服务
stopService结束服务
开启服务的缺点startService()开启服务
bindService()调用服务里面的方法
unBindService()解绑服务
stopService结束服务
无法使用服务里面的方法
bind服务步骤,以及调用服务里面的方法
1.绑定方式开启服务
bindService(intentService,ServiceConnection,BIND_AUTO_CREATE);
2.服务内部需要定义一个服务的代理类
MyBinder extends Binder{
public Service getService(){
return Service.this;
}
}
3.返回IBinder对象
public IBinder onBind(Intent intent) {
return new MyBinder();
}
4.实现ServiceConnection服务里面的方法
private class MyServieConnection implements ServiceConnection {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
IService.MyBinder binder = (IService.MyBinder) service;
mIService = binder.getService();
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
}
5.调用服务里面的方法
mIService.methed();
bindService(intentService,ServiceConnection,BIND_AUTO_CREATE);
2.服务内部需要定义一个服务的代理类
MyBinder extends Binder{
public Service getService(){
return Service.this;
}
}
3.返回IBinder对象
public IBinder onBind(Intent intent) {
return new MyBinder();
}
4.实现ServiceConnection服务里面的方法
private class MyServieConnection implements ServiceConnection {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
IService.MyBinder binder = (IService.MyBinder) service;
mIService = binder.getService();
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
}
5.调用服务里面的方法
mIService.methed();
绑定服务的常见应用
· 提供一个服务,后台运行,里面有一些公共的逻辑供调用. 1.音乐播放器,在服务里面提供上一曲,下一曲,播放,暂停等
2.qq,微信接收离线消息
本文版权归传智播客Android培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Android培训学院
首发:http://www.itcast.cn/android/
0 0
- Android之Android下service详解
- android之Service详解
- Android 之 Service 详解
- Android之service详解
- Android之 Service详解
- Android service 之Remote Service详解
- android开发之service详解
- Android Service详解之生命周期
- android基础之service详解
- Android 中的 Service 全面总结详解【下】
- android之Service详解(转载)
- Android四大组件之---Service(服务)详解
- android之service和Intentservice详解
- Android开发学习之Service详解一
- Android开发学习之Service详解二
- Android 四大组件之Service详解
- Android开发之Service服务详解
- Android四大组件之Service详解
- Java开发中的23种设计模式详解之一:5种创建型模式
- Android之屏幕适配
- openwrt创建应用软件包和内核软件包 Makefile的讲解
- 正向创建单向链表
- Mysql 索引及优化查询
- Android之Android下service详解
- Linux输入子系统(Input Subsystem)
- [HDU2604]Queuing(dp+矩阵快速幂)
- 融联云通讯的底层实现协议简介
- Java开发中的23种设计模式详解之二:7种结构型模式
- Stateful Session Bean VS Entity Bean
- 面试题数组篇(1)
- Android之系统触摸事件三步曲
- Android Studio方法注释模板