特别说明:
文章有误,请后来的人不要被我误导了,后面会重新出篇新文章替换这个有错误的文章!!
感谢下面的人指出错误,初学android理解有误。
</pre><p></p><p></p><pre name="code" class="java">最近今天在学习service控件,前面的后台service和绑定本地控件的service的很容易理解,几乎没遇到什么问题,但看到远程调用service的时候模仿书上的例题,结果发现竟然得不到想要的结果,把书上的例子源码弄进去,还是会有问题,于是经过好几天的自己摸索和网上参考一些资料,主要得到帮助的来自http://www.cnblogs.com/TerryBlog/archive/2010/08/24/1807605.html http://ericchan2012.iteye.com/blog/1554197 这2个网址。接下来直接进入正题,对这几天对远程绑定调用service的学习结果。
远程绑定调用service主要是用来不同进程的信息共享。就比如服务器和客户端,在服务器端设置好一个service提供方法或信息,然后客户端可以直接调用服务器端service提供方法或信息。这里有个前提是客户端必须有和服务器端一份一样的AIDL,然后服务器端在客户端使用的系统上有注册过(也就是安装运行过一次),之后客户端就可以远程绑定调用服务器端的service了。
具体的步骤如下:
1.首先,是服务器的
1)创建一个android应用工程
2) 在主Aitivity所在的包里新建个AIDL文件,这是ADT会自动帮你在gen目录下生成一个和AIDL文件同名的JAVA文件(这里的AidlService.java是下一步骤生成的,这里可以先忽略)
3)如上图所示,创建一个用来使用service的类(AidlService.java)
具体每个文件的代码如下:
AidlServerActivity.java
package com.ds.server;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class AidlServerActivity extends Activity {
/** Called when the activity is first created. */
@Override