Android之进程通讯——广播
来源:互联网 发布:软件升级 增值税税率 编辑:程序博客网 时间:2024/05/16 18:47
不同进程间的通讯,其实Android的四大组件都可以实现。
日常,我们用广播,在一个独立的app中使用的较多。或者是系统和app之间使用。
在两个自定义的app之间,我们也写个例子,表明广播是很好用的!!
在这里就自定义两个app:BroadCastA(后面称为A)、BroadCastB(后面称为B)。A发送广播,B接收广播。
例子如下:
BroadCastA:
package com.example.broadcasta;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btnButton=(Button)findViewById(R.id.send);btnButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent=new Intent();intent.setAction("com.bill99.test");intent.putExtra("info", "传递内容");sendBroadcast(intent);}});}}
package com.example.broadcastb;import android.os.Bundle;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.text.TextUtils;import android.widget.Toast;public class MainActivity extends Activity {BroadcastReceiver broadcastReceiver;IntentFilter intentFilter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);intentFilter=new IntentFilter();intentFilter.addAction("com.bill99.test");broadcastReceiver=new MyReceiver();registerReceiver(broadcastReceiver, intentFilter);}class MyReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubif(intent!=null){ if(!TextUtils.isEmpty(intent.getAction())){ Toast.makeText(getApplicationContext(), intent.getAction(), Toast.LENGTH_SHORT).show(); } if(!TextUtils.isEmpty(intent.getStringExtra("info"))){ Toast.makeText(getApplicationContext(), intent.getStringExtra("info"), Toast.LENGTH_SHORT).show(); }}}}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();unregisterReceiver(broadcastReceiver);} }
两个app运行后,你在A中点击广播发送,在B中就可以收到广播和传递信息了。
源码:进程间广播通讯源码
1 3
- Android之进程通讯——广播
- Android之进程通讯——广播
- Android之广播机制—自定义广播
- Android之广播机制—有序广播
- Android之广播机制—本地广播
- Android进程间通讯——AIDL
- Android进程间通讯——ContentProvider
- Android — 之广播接收器
- Android进程间通讯——多进程共用SharedPreferences
- Android进程间通讯——多进程共用SharedPreferences
- Android进程间通讯——多进程共用SharedPreferences
- Android进程间通讯之messenger
- Android进程间通讯之messenger
- Android进程间通讯之messenger
- Android 多进程通讯之 AIDL
- Android进程间通讯之AIDL
- Android学习之AIDL进程间通讯
- Android进程间通讯之messenger
- Cocos2dx-lua 播放音循环播放问题
- 关于Asynctask
- JVM内存模型及垃圾回收算法
- android 常用library
- Linux crontab 命令详解(含配置文件路径)
- Android之进程通讯——广播
- pcl 1.8.0(4) qhull 编译
- Android 6.0 系统棉花糖新的特性和功能
- matlab 小知识点
- .net 三种拼接数据为DataTable的方法
- 1078. Hashing (25)
- 【CSS3】属性选择器
- php emoji表情处理
- 安卓屏屏幕适配