Service(一)
来源:互联网 发布:linux打包命令 tar.gz 编辑:程序博客网 时间:2024/04/29 02:53
服务(Service)是Android四大组件之一
1.启动式服务
1.1.启动式开启服务
Intent startIntent=new Intent(this, MyService.class);
startService(startIntent);
1.2.启动式停止服务
Intent stopIntent=new Intent(this, MyService.class);
stopService(stopIntent);
1.3.启动式服务生命周期
onCreate()->onStartCommand()(服务第一次执行)
onStartCommand()(服务不是第一次执行)
onBind()方法不执行
1.4总结
使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了服务仍然运行(只要不执行stopService(stopIntent)方法)。
2.绑定式服务
2.1.绑带式开启服务
Intent bindIntent=new Intent(this, MyService.class);
bindService(bindIntent, conn, BIND_AUTO_CREATE);
2.2.绑定式停止服务
unbindService(conn);
只有调用过bindService()才可以调用unBindService() 这两个方法必须一一对应,可以只调用前者,但是绝对不能再未调用前者的情况下,调用后者,或者多次调用后者.
2.3.在activity页面里
private MyService.MyBinder myBinder;(服务里的内部类)
private class MyServiceConnection implements ServiceConnection{
@Override
public void onServiceConnected(ComponentName arg0, IBinder arg1) {
myBinder=(Mybinders) arg1;//获取服务里内部类对象
myBinder.start();//调用服务里相应的函数
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
}
}
2.5.服务里 onBind方法
public IBinder onBind(Intent arg0) {
return new Mybinders();
}
2.6.服务里 继承Binder的内部类
class Mybinders extends Binder{
public void start(){
在此进行相应的操作
}
}
2.7.绑定式生命周期
onCreate()->onBind()(服务第一次执行)
onBind()(服务不是第一次执行)
onStartCommand()方法不执行
2.8总结
使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的 特点。
3.总结
这两个方法都可以启动Service,但是它们的使用场合有所不同。使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服 务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的 特点。
在Service每一次的开启关闭过程中,只有onStart可被多次调用(通过多次startService调用),其他onCreate,onBind,onUnbind,onDestory在一个生命周期中只能被调用一次。
- Service一
- Service(一)
- Service(一)
- 一、Web Service简介
- 解析service(一)
- APIDemo Service(一)
- 初识 Service(一)
- service (一)用法
- Android (一) Service基础
- Windows service(一)
- Service详解(一)
- Android SERVICE(详解一)
- android Service(一)
- service bound(一)
- Service的使用一
- Android之Service一
- Android Service (一)
- android service学习一
- 【Darknet】【yolo v2】训练自己数据集的一些心得----VOC格式
- 一个开源AC算法源码分析
- Windows和Linux与远程服务器之间进行文件交互
- 移动App架构设计
- bootstrap日期时间控件
- Service(一)
- Html的单元格合并等功能的实现
- H5游戏的技术发展
- Linux_Centos中搭建nexus私服
- 文本二叉树
- https://www.douban.com/note/249723561/
- Mysql中limit的用法详解
- 数据结构八大排序算法
- Handler vs Timer