服务不能由用户创建,只能由系统创建。我们只管请求服务。
服务有两种开启方式:
1、 startService()的方式开启服务
服务只会被创建一次,onCreate方法
多次执行startService()只会调用onStart()方法
开启者退出了,服务还在后台继续运行
服务非常适合做没有界面的,长期在后台运行的事情
2、bindService
为什么不能直接
MySerivce service = new MyService();
service.methodInService();
这是因为自动创建的就不是Service服务了,而是简单的一个java类。没有带上下文的信息!
所以一定要系统创建,因为只有系统才能将上下文准备出来!
AIDL:android interface defination language 接口定义语言
作用:完成调用远程服务(不同的应用上的服务)的方法
IPC: inter process communication 进程间通讯
调用远程服务里面的方法
服务有两种开启方式:
1、 startService()的方式开启服务
服务只会被创建一次,onCreate方法
多次执行startService()只会调用onStart()方法
开启者退出了,服务还在后台继续运行
服务非常适合做没有界面的,长期在后台运行的事情
2、bindService
为什么不能直接
MySerivce service = new MyService();
service.methodInService();
这是因为自动创建的就不是Service服务了,而是简单的一个java类。没有带上下文的信息!
所以一定要系统创建,因为只有系统才能将上下文准备出来!
AIDL:android interface defination language 接口定义语言
作用:完成调用远程服务(不同的应用上的服务)的方法
IPC: inter process communication 进程间通讯
调用远程服务里面的方法
本文介绍了Android中服务的两种启动方式:使用startService()方法启动的服务会持续运行直到被明确停止,即使启动它的组件已不再存在;通过bindService()启动的服务则与绑定的组件生命周期绑定。此外还探讨了为什么不能直接实例化服务类以及AIDL和IPC的作用。
1339

被折叠的 条评论
为什么被折叠?



