Android核心技术之(7)---四大应用组件之Service
2017-02-22 14:25
363 查看
1.Service是什么
1.1.Service是一个应用组件,它用来在后台完成一个时间跨度比较大的工作且没有关联任何界面
1.2.一个Service可以完成下面这些工作:
访问网络
播放音乐
文件IO操作
大数据量的数据库操作
……
1.3. 服务的特点:
•Service在后台运行,不用与用户进行交互
•即使应用退出, 服务也不会停止.
•在默认情况下,Service运行在应用程序进程的主线程(UI线程)中,如果需要在Service中处理一些网络连接等耗时的操作,那么应该将这些任务放在分线程中处理,避免阻塞用户界面
2.区别Service与Activity
2.1.Activity:
•Activity对应一个界面
•应用退出, Activity对象就会死亡
•应用再次进入, 启动的Activity对象是重新创建的
2.2.Service
•不与任何界面关联
•应用退出, Service仍在运行
•应用再次进入, 启动的Service还是前面运行
4000
的Service对象
3.区别Service与Thread
3.1.Service
•用来在后台完成一个时间跨度比较大的工作的应用组件
•Service的生命周期方法运行在主线程, 如果Service想做持续时间比较长的工作, 需要启动一个分线程(Thread)
•应用退出: Service不会停止
•应用再次进入: 可以与正在运行的Service进行通信
3.2.Thread
•用来开启一个分线程的类, 做一个长时间的工作
•Thread对象的run()在分线程执行
•应用退出: Thread不会停止,
•应用再次进入: 不能再控制前面启动的Thread对象
4.Service的分类
4.1.Local Service(本地服务)
Service对象与Serive的启动者在同个进程中运行, 两者的通信是进程内通信
4.2.Remote Service(远程服务)
Service对象与Service的启动者不在同一个进程中运行, 这时存在一个进程间通信的问题,Android专门为此设计了AIDL来实现进程间通信
5.定义一个Service
5.1.定义一个类继承于Service类
publicclass MyServiceextends Service
{
}
5.2.在AndroidManifest.xml中配置Service
<serviceandroid:name=".test.MyService">
<intent-filter>
<action android:name="com.atguigu.service.test.MyService" />
</intent-filter>
</service>
6.启动和停止一个本地Service
6.1.方式一:
一般启动与停止
context.startService(Intentintent)
context.stopService(Intentintent)
6.2.方式二 :
绑定启动与解绑
context.bindService(Intentintent, ServiceConnection
connection)
context.unbindService(ServiceConnectionconnection)
区别:看Service启动后是否与启动者有关联?Service对象经历的生命周期是否相同?
7.Service的生命周期方法
•onCreate()
•onStartCommand()
•onBind()
•onUnbind()
•onDestroy()
8.远程Service
每个应用程序都运行在自己的独立进程中,并且可以启动另一个应用进程的服务,而且经常需要在不同的进程间传递数据对象。在Android平台,一个进程不能直接访问另一个进程的内存空间,所以要想对话,需要将对象分解成操作系统可以理解的基本单元,并且有序的通过进程边界。
AIDL:(Android Interface Definition Language):用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess
communication, IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数。
1.1.Service是一个应用组件,它用来在后台完成一个时间跨度比较大的工作且没有关联任何界面
1.2.一个Service可以完成下面这些工作:
访问网络
播放音乐
文件IO操作
大数据量的数据库操作
……
1.3. 服务的特点:
•Service在后台运行,不用与用户进行交互
•即使应用退出, 服务也不会停止.
•在默认情况下,Service运行在应用程序进程的主线程(UI线程)中,如果需要在Service中处理一些网络连接等耗时的操作,那么应该将这些任务放在分线程中处理,避免阻塞用户界面
2.区别Service与Activity
2.1.Activity:
•Activity对应一个界面
•应用退出, Activity对象就会死亡
•应用再次进入, 启动的Activity对象是重新创建的
2.2.Service
•不与任何界面关联
•应用退出, Service仍在运行
•应用再次进入, 启动的Service还是前面运行
4000
的Service对象
3.区别Service与Thread
3.1.Service
•用来在后台完成一个时间跨度比较大的工作的应用组件
•Service的生命周期方法运行在主线程, 如果Service想做持续时间比较长的工作, 需要启动一个分线程(Thread)
•应用退出: Service不会停止
•应用再次进入: 可以与正在运行的Service进行通信
3.2.Thread
•用来开启一个分线程的类, 做一个长时间的工作
•Thread对象的run()在分线程执行
•应用退出: Thread不会停止,
•应用再次进入: 不能再控制前面启动的Thread对象
4.Service的分类
4.1.Local Service(本地服务)
Service对象与Serive的启动者在同个进程中运行, 两者的通信是进程内通信
4.2.Remote Service(远程服务)
Service对象与Service的启动者不在同一个进程中运行, 这时存在一个进程间通信的问题,Android专门为此设计了AIDL来实现进程间通信
5.定义一个Service
5.1.定义一个类继承于Service类
publicclass MyServiceextends Service
{
}
5.2.在AndroidManifest.xml中配置Service
<serviceandroid:name=".test.MyService">
<intent-filter>
<action android:name="com.atguigu.service.test.MyService" />
</intent-filter>
</service>
6.启动和停止一个本地Service
6.1.方式一:
一般启动与停止
context.startService(Intentintent)
context.stopService(Intentintent)
6.2.方式二 :
绑定启动与解绑
context.bindService(Intentintent, ServiceConnection
connection)
context.unbindService(ServiceConnectionconnection)
区别:看Service启动后是否与启动者有关联?Service对象经历的生命周期是否相同?
7.Service的生命周期方法
•onCreate()
•onStartCommand()
•onBind()
•onUnbind()
•onDestroy()
8.远程Service
每个应用程序都运行在自己的独立进程中,并且可以启动另一个应用进程的服务,而且经常需要在不同的进程间传递数据对象。在Android平台,一个进程不能直接访问另一个进程的内存空间,所以要想对话,需要将对象分解成操作系统可以理解的基本单元,并且有序的通过进程边界。
AIDL:(Android Interface Definition Language):用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess
communication, IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数。
相关文章推荐
- Android核心技术之(9)---四大应用组件之ContentProvider
- Android核心技术之(2)---四大应用组件之Activity
- Android四大组件应用系列——使用BroadcastReceiver和Service实现倒计时
- 01 Android应用的构成 四大组件 Activity, Intent Receiver , Service , Content Provider
- Android四大组件应用系列5——使用AIDL实现跨进程调用Service
- 【Android基础】(2)四大核心组件之Service
- Android四大组件应用系列——Activity与Service交互实现APK下载
- 四大应用组件之Service【Android】
- Android四大核心组件之一-----Service(服务)的基本知识
- Android四大核心组件之Service
- Android核心基础-11.Android四大组件之Service
- Android四大核心组件之Service
- android 四大组件之一 Service 的应用
- Android四大核心组件之Service:服务
- 01 Android应用的构成 四大组件 Activity, Intent Receiver , Service , Content Provider
- Android四大组件之服务-Service 原理和应用开发详解
- Android四大组件应用系列——Activity与Service交互实现APK下载
- Android 四大核心组件之Service
- android 应用五大核心组件之一(service)
- Android 技术专题Feature系列第一篇 四大组件之Service