AIDL 跨进程通信(一)(这篇里没用AIDL --|||)

AIDL-- Android自定义接口语言

我们所说的跨进程大概有两种: 两个应用跨进程 , 一个应用多开了一个进程 . 这里我们先说一下两个应用间的通信.

可以跨进程的有Intent ,EventBus ,广播,ContentProvider ,Binder,这里我们用Intent 通信传值. 

注意,两个应用必须是自己的, 要是QQ能和支付宝通信 那就乱了. 

首先我们建两个工程,一个ADemo 用来发消息,BDemo 用来接消息. 

首先我们需要在BDemo中新建一个Activity , 我取的名字是ReceiveAty ,在 AndroidManiFest中注册,到这里我们都和以往的操作一样 不过我们需要在注册里在写一些东西

如下

<activity android:name=".ReceiveAty">
    <!--暴露出这个aty供外部访问-->
    <intent-filter>
        <!--给aty加个名字-->
        <action android:name="BDemo.com"/>
        <!--计划 声明我们的一个地址-->
        <data android:scheme="value"/>
        <!--启动方式  默认的-->
        <category android:name="android.intent.category.DEFAULT"/>

    </intent-filter>
</activity>
名字是自己起的,由于我们需要用category和action ,所以我们不能使用MainActivity , 否则没有启动的activity ,应用无法启动

BDemo目前告一段落,我们开始写ADome 

ADemo 中我们需要做的事情更少,我们只需要一个Intent 就可以打开BDemo并传值了 代码如下

//参数说明
//第一个参数就是我们要跳转的app的aty的名字
//第二个参数是一个地址
Intent intent=new Intent("BDemo.com", Uri.parse("value://123456789"));
intent.putExtra("key","我的ADemo的值");
startActivity(intent);
这段代码写在点击事件里就可以,  Uri.parse() 中的参数构成 为   BDemo中注册时的计划名 +"://" +任意数字(数字多长都可以)

计划名我用的是value,实际用什么都可以只是这里必须与之前写的相同,以及必须有"://"

在BDemo中接收一下Intent就可以了

Intent intent=getIntent();
String data=intent.getStringExtra("key");
textView = (TextView) findViewById(R.id.tv);
textView.setText(data);

这时候我们就可以实现一个简单的跨进程通信了,使用的是Intent.还没有用到AIDL.

下一篇用AIDL实现简单的一个应用的两个进程间通信



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值