Service的生命周期和使用
来源:互联网 发布:汽车配件平台源码下载 编辑:程序博客网 时间:2024/06/07 12:16
在Android中Service是用来进行后台数据处理的东西,类似于Linux下的后台进程,就是当前活动创建的Service在这个活动窗口退出后Service还是继续运行的,我们要对用户的行动进行跟踪,就要长时间采集GPS发送过来的地理位置信息,这样的东西写成一个Service再合适不过了。自己编写的Service要继承系统的Service类,然后Override其中的方法。
服务可以分为本地服务和远程服务
绑定本地服务调用方法的步骤:
- 在服务的内部创建一个内部类 提供一个方法,可以间接调用服务的方法private class MiddlePerson extends Binder implements IMiddlePerson{}
- 实现服务的onbind方法,返回的就是中间人 MiddlePerson
- 在activity 绑定服务。bindService();
- 在服务成功绑定的时候 会执行一个方法 onServiceConnected 传递过来一个 IBinder对象
- 强制类型转化 调用接口里面的方法。
绑定远程服务调用方法的步骤:
- 在服务的内部创建一个内部类 提供一个方法,可以间接调用服务的方法
- 把暴露的接口文件的扩展名改为aidl文件 去掉访问修饰符 publicprivate class MiddlePerson extends IMiddlePerson.Stub{} IPC的子类
- 实现服务的onbind方法,返回的就是中间人 IMiddlePerson
- 在activity 绑定服务。bindService();
- 在服务成功绑定的时候 会执行一个方法 onServiceConnected 传递过来一个 IBinder对象
- IMiddlePerson.Stub.asInterface(binder) 调用接口里面的方法。
一、采用start的方式开启服务
生命周期如下:
onStart()过时了
开启服务: onCreate()--> onStartCommand() ---> onDestory();
如果服务已经开启,不会重复的执行onCreate(), 而是会调用onStart()和 onStartCommand();
只能手动的调用stopService();或者在手机里停掉服务
服务停止的时候调用 onDestory().
服务只会被停止一次
一旦服务开启跟调用者(开启者)就没有任何关系了。
开启者退出了,开启者挂了,服务还在后台长期的运行。
开启者没有办法去调用服务里面的方法
二、服务还有一种开启方式,绑定的方式开启服务。
onCreate() --->onBind();--->onServiceConnected()-->onunbind()-->onDestory();
绑定服务不会调用onstart或者onstartcommand方法;
如果服务已经绑定,不会重复的执行onBind(), 而是会调用onServiceConnected()
bind的方式开启服务,绑定断开,调用者挂了,服务也会跟着停掉。
开启者可以调用服务里面的方法。
三、混合调用的服务的生命周期,bind+start
onCreate() --->onStartCommand()--->onBind()--->onServiceConnected()-->onunbind()-->onDestory();
服务既能长期后台运行,又能调用服务的方法。
绑定断开,调用者挂了,服务也不跟着挂掉 ,继续长期在后台运行,只能手动的调用stopService();或者在手机里停掉服务
调用者能调用服务里的方法
0 0
- Service的生命周期和使用
- Android Service 的生命周期和使用
- Android Service生命周期和本地Service的使用
- Android 四大组件之Service 的生命周期和使用
- Android 四大组件之Service 的生命周期和使用
- Activity和Service的生命周期
- Service 生命周期和使用注意项
- Service 生命周期和使用注意项
- android Service 生命周期和使用注意项
- Service 生命周期和使用注意项
- Activity和Service的生命周期(图)
- bindService 同步context和service的生命周期
- Activity和Service的生命周期(图)
- Activity和Service的生命周期(图)
- Activity和Service的生命周期(图)
- Activity和Service的生命周期详解
- service的生命周期和启动方式
- Android中Service的使用及Service生命周期
- Fiddler2介绍
- 随笔
- 机器学习作业 之 logistic regression(programming exercise week 3 )
- 新程序猿——————————起步记录(并且不断更新自己工作遇到的问题)
- Cocos2dx游戏开发笔记21:动手学习《Flappy Bird》之继续优化(付源码)
- Service的生命周期和使用
- 读书笔记--智能指针
- Aisen微博
- Java图形界面接触
- pat 1083. List Grades WATER
- 方法的重载
- Bundle 保存各类型数据的总结
- nyoj1159XX和OO
- 德与才