服务不能由用户创建,只能由系统创建。我们只管请求服务。
服务有两种开启方式:
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,并解释了为何不能直接通过new Service的方式启动服务。同时,文章阐述了AIDL接口定义语言的作用,以及如何利用它完成跨应用服务的调用。通过理解这些关键概念,开发者能够更高效地在应用中实现后台任务的执行。
785

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



