当一个Service在androidManifest中被声明为 process=":remote", 或者是另一个应用程序中的Service时,即为远程Service, 远程的意思是和当前程序不在同一个进程中运行。Activity和远程Service的跨进程通信(IPC)通过Binder机制,使用AIDL服务实现。
而常见的本地Service与activity的交互通过bindService即可...
分类:
移动开发 时间:
2015-08-21 15:40:04
阅读次数:
357
至于什么是service,我也不想多去讨论,我只想清晰确认这么几个问题:
1、service的生命周期到底如何?
2、Activity如何让service做事?
3、service与thread之间有没有关系?
4、远程service是什么东西?
5、AIDL的使用?...
分类:
移动开发 时间:
2015-08-14 11:41:32
阅读次数:
118
综合实例2:客户端访问远程Service服务
实现:通过一个按钮来获取远程Service的状态,并显示在两个文本框中。
思路:假设A应用需要与B应用进行通信,调用B应用中的getName()、getAuthor()方法,B应用以Service方式向A应用提供服务。所以,我们可以将A应用看成是客户端,B应用为服务端,分别命名为AILDClient、AILDServer.
一、服务端...
分类:
移动开发 时间:
2015-06-04 19:32:24
阅读次数:
211
如果需要访问不同进程间service中的数据或者方法,需要使用AIDL(android interface description language)工具,可以通过如下方法: public boolean bindService(Intent intent, ServiceConnection .....
分类:
其他好文 时间:
2015-05-28 19:37:11
阅读次数:
221
??
该实例所传输的数据类型是自定义类型。
Android 要求调用远程Service的参数和返回值都需要实现Parcelable接口。
实现Parcelable接口相当于Android提供的一种自定义序列化机制。
实现Parcelable接口不仅要求实现该接口里定义的方法,而且要求在实现类中定义一个名为CREATOR
类型为Parcelable.Creator的静态Fi...
分类:
移动开发 时间:
2015-05-22 19:18:46
阅读次数:
184
服务端:只有服务,没有界面1.编写interface文件,复制到 .aidl 文件中,并去掉其中的public 等修饰符。系统会自动在gen目录下生成对应的java文件 (对应本地调用中的接口文件) 2.编写service,其中内部类的自定义bind 只需要继承Stub即可。(本地调用则需要继承B....
分类:
移动开发 时间:
2015-04-12 20:40:45
阅读次数:
208
正常情况下,整个android应用程序的application的onCreate方法只会在程序运行的时候执行一次,但是也有特殊情况,那就是在应用中开启了远程服务,远程服务运行在一个单独的进程当中,这个时候application的onCreate方法会被重复调用。很多时候我们希望Application...
分类:
移动开发 时间:
2015-03-30 13:00:08
阅读次数:
167
AndroidService 深度解析(2)
上一篇文章我们对Service的生命周期进行了测试及总结。这篇文章我们介绍下绑定运行的Service的实现。
绑定运行的Service可能是仅为本应用提供服务,称为本地Service;也可能为其他应用提供跨进程服务,即远程Service。下面分别进行介绍:
本地Service
如果Service只服务于本应用,那么我们只需要继承Binder类,...
分类:
移动开发 时间:
2015-03-18 01:19:21
阅读次数:
206
此实例与前面aidl不同之处在于,传递的数据比较复杂,传递了自定义数据对象,本实例使用到了两个数据对象Person和Pet,其中Person是作为远程调用Service传递的参数,Pet是远程Service返回调用端的数据。像Java的RMI需要将数据对象序列化一样,此数据对象也需要序列化,因此.....
分类:
移动开发 时间:
2014-12-04 11:56:48
阅读次数:
144
前言:本文主要讨论启动远程Service。 Service和Activity不在一个工程里面,也即不在一个App里面。不在一个进程里,所以会用到AIDL。 Service的android:process属性未指定。 一、startService 1、通过调用startService启动服务的过程: ...
分类:
移动开发 时间:
2014-11-14 19:33:19
阅读次数:
189