1.Service是什么
访问网络
播放音乐
文件IO操作
大数据量的数据库操作
……
1.3. 服务的特点:
2.区别Service与Activity
2.1.Activity:
2.2.Service
3.1.Service
3.2.Thread
Service对象与Serive的启动者在同个进程中运行, 两者的通信是进程内通信
Service对象与Service的启动者不在同一个进程中运行, 这时存在一个进程间通信的问题,Android专门为此设计了AIDL来实现进程间通信
5.定义一个Service
publicclass MyServiceextends Service {
}
<serviceandroid:name=".test.MyService">
<intent-filter>
<action android:name="com.atguigu.service.test.MyService" />
</intent-filter>
</service>
6.启动和停止一个本地Service
context.startService(Intentintent)
context.stopService(Intentintent)
context.bindService(Intentintent, ServiceConnection connection)
context.unbindService(ServiceConnectionconnection)
区别:看Service启动后是否与启动者有关联?Service对象经历的生命周期是否相同?
7.Service的生命周期方法
每个应用程序都运行在自己的独立进程中,并且可以启动另一个应用进程的服务,而且经常需要在不同的进程间传递数据对象。在Android平台,一个进程不能直接访问另一个进程的内存空间,所以要想对话,需要将对象分解成操作系统可以理解的基本单元,并且有序的通过进程边界。
AIDL:(Android Interface Definition Language):用于生成可以在Android设备上两个进程之间进行进程间通信(interprocess communication, IPC)的代码。如果在一个进程中(例如Activity)要调用另一个进程中(例如Service)对象的操作,就可以使用AIDL生成可序列化的参数。