当前位置: 首页 > news >正文

西安网站制作计划/网奇seo赚钱培训

西安网站制作计划,网奇seo赚钱培训,两学一做考试网站,江苏系统建站怎么用何为android中的RPC模式? 相信有的读者还不是很理解,这里和大家做一个简单的介绍.RPC模式:Remote Procedure Call即远程进程调用. 在android操作系统中,各个组件运行在各自的进程中,它们相互之间是不能访问的.但是在程序之间不可避免的要传递一些对象、参数等,这就…

何为android中的RPC模式?

相信有的读者还不是很理解,这里和大家做一个简单的介绍.RPC模式:Remote Procedure Call即远程进程调用.

在android操作系统中,各个组件运行在各自的进程中,它们相互之间是不能访问的.但是在程序之间不可避免的要传递一些对象、参数等,这就需要实现进程间的相互通信.android采用了一种轻量级的实现方式--->RPC模式来完成进程之间的通信.通过定义接口语言(android interface definition language——AIDL)来完成进程之间相互访问的代码.例如:#1你需要在Activity中访问Service中的某一个方法,就可以采用这种方式来实现了.

AIDL语言是android的一种接口描述语言,编译器可以通过AIDL文件生成一段代码(注意:这段代码是自动生成的),通过预先定义的接口达到两个进程内部通信进程的目的.

详细的说下#1例子是什么个意思:如果需要在一个Activity中访问另一个Service中的某个对象,需要先将对象转化成AIDL可识别的参数(可能是多个参数),然后使用AIDL来传递这些参数,在消息的接收端,使用这些参数封装成自己需要的对象.

总的来说:android中的AIDL RPC是通过接口来实现的,类似Windows中的COM或者Corba,但它是轻量级的,客户端和被调用实现之间是通过代理模式实现的,代理类和被代理类实现同一个Ibinder接口.

接下来我就一个具体的案例和大家讲讲RPC模式的具体实现步骤:

第一步:毫无疑问,是创建AIDL接口文件.第一个问题来了,怎样创建AIDL文件?

其实有这个疑问很正常,我上网搜了一些资料,问题解决.

在当前的Activity所在的Package右击,new一个file,取名BookInfo.aidl.该文件中的具体内容如下:

package com.ceo.remoteservice.activity;
//BookInfo的接口文件
interface BookInfo {
void setName(String name);
void setPrice(float price);
void setPublish(String publish);

//显示book信息
String display();
}

该接口文件中主要包括:当前的package name,接口中的方法的声明.编写完成后ctrl+s,可以发现在gen文件夹下自动生成了BookInfo.java文件.如下图所示:

需要注意的是该文件是系统自动生成的,尽量不要改动里面的代码,以免带来不必要的错误.

第二步:声明一个类public class BookInfoImpl extends BookInfo.Stub

private float price;
private String name,publish;

@Override
public String display() throws RemoteException {
return "书名:" + name + "价格:" + price + "出版社:" + publish;
}

@Override
public void setName(String name) throws RemoteException {
this.name = name;
}

@Override
public void setPrice(float price) throws RemoteException {
this.price = price;
}

@Override
public void setPublish(String publish) throws RemoteException {
this.publish = publish;
}

该文件下实现的这些方法都是在接口文件中定义的.

第三步:向客户端暴露我们的接口,定义一个远程服务的类public class RemoteService extends Service

private Stub bookifo = new BookInfoImpl();

在onBind方法里面直接return bookifo;

第四步:主要就是MainActivity的编写了

public class MainActivity extends Activity {//声明接口private BookInfo bookinfo;//声明Buttonprivate Button btnShow;//最重要的一点就是----->实例化ServiceConnectionprivate ServiceConnection conn = new ServiceConnection(){@Overridepublic synchronized void onServiceConnected(ComponentName name, IBinder service) {//--->获得BookInfo的接口bookinfo = BookInfo.Stub.asInterface(service);if(bookinfo != null) {try {bookinfo.setName("android开发之远程服务的调用--jack.li");bookinfo.setPrice(99.99f);bookinfo.setPublish("苏州xxx软件有限公司");String msg = bookinfo.display();//Toast显示Toast.makeText(MainActivity.this, msg, 1).show();} catch (RemoteException e) {e.printStackTrace();}}}@Overridepublic void onServiceDisconnected(ComponentName name) {}};@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);btnShow = (Button)findViewById(R.id.btnShow);btnShow.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setAction("com.ceo.remoteservice.activity.action.MY_REMOTE_SERVICE");bindService(intent, conn, Service.BIND_AUTO_CREATE);}});}
}

最后运行结果如图:


至此,所有关于Android中的RPC模式、AIDL接口语言、以及怎样在Activity中访问另一个Service中的对象就全部介绍完毕了.

有需要整个项目源代码的留下邮箱,或直接加我qq,我会发给大家.

 

2011.10.20.pm

jack.li

QQ:523072842
Email:523072842@qq.com

转载于:https://www.cnblogs.com/jackxlee/archive/2011/10/20/2218868.html

http://www.lbrq.cn/news/942535.html

相关文章:

  • 怎么用ps做网站ui/上海优化公司有哪些
  • 免费空间有哪些/徐州网站建设方案优化
  • 优秀专题网站/阿里巴巴国际贸易网站
  • 品牌建站/旺道seo优化
  • b2c网站的经营情况/免费一键搭建网站
  • 做b2b网站服务器空间多大的容量/外包公司是正规公司吗
  • 哪个网站可以做全网推广/网络营销策划方案
  • 找别人做网站要注意什么软件/网址大全百度
  • 西安那些做网站的公司/免费宣传平台有哪些
  • 网站开发者模式怎么保存/百度官网
  • 贵州网站推广/搜索引擎分类
  • 教育行业网站建设审批/域名购买
  • 网站建设全程揭秘 课件下载/视频号关键词搜索排名
  • 北京专业做网站的公司/论坛seo招聘
  • 品牌网站建设有哪些/站长推广网
  • 稳定的网站建设/什么是搜索引擎优化seo
  • dw怎么做phpcms网站/域名权重
  • 电商网站成功的营销策略/互联网下的网络营销
  • 福州网站建设服务价格最实惠/搜索引擎营销的主要方法
  • 行业电子商务网站有哪些/app网络推广方案
  • 哪些网站可以做代理/优化网站链接的方法
  • 推广赚钱的软件有哪些/百度seo什么意思
  • 广州冼村改造/seo引流什么意思
  • 各个做网站的有什么区别/cilimao磁力猫最新版地址
  • 网易免费企业邮箱入口/seo运营做什么
  • 做微信平台网站需要多少钱/磁力天堂最佳搜索引擎入口
  • 宁夏建设厅网站官网/seo就业前景如何
  • 哪个网站做服装批发比较好/百度首页登录官网
  • 金融理财网站建设方案/每天三分钟新闻天下事
  • 黑客收徒网站建设/网站的营销策略
  • 1.安装anaconda详细步骤(含安装截图)
  • 【科研绘图系列】R语言绘制误差连线散点图
  • OpenFeign-远程调用
  • TDengine 转化函数 TO_TIMESTAMP 用户手册
  • Uniapp编写微信小程序,绘制动态圆环进度条
  • 云原生介绍