Android--从零单排系列(7)--广播的使用和利用广播进行数据的传递
2016-07-04 21:22
633 查看
做下广播的两种方式的使用总结
方式一:静态广播
1.静态注册广播:静态注册广播就是在androidManifest.xml文件中注册广播,假设我们要实现这样一个效果,在一个activity上点击按钮,发送一条广播,这条广播弹出一个toast,显示“我是静态广播”二字。
*1,写一个类MyBroadcast 继承BroadcastReceiver (也可以写内部类的广播接受者)
public class MyBroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context,"我是静态的广播", Toast.LENGTH_LONG).show(); } }
*2,清单文件注册广播
<receiver android:name="com.example.staticbroadcast.MyBroadcast" > <intent-filter> <action android:name="com.test.StaticBroadcast" /> </intent-filter> </receiver>
*3,相对应的activity处理发送广播(从而实现广播里面的逻辑)
this.static_btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction("com.test.StaticBroadcast"); sendBroadcast(intent); } });
结果是弹出一个土司我是静态的广播
方式二:动态广播:
*简单分析为:*1,写,一个广播接受者MyBroadcastReceiver(内部类或者外部类)在他的onReceive处理接受到广播的逻辑
*2,注册广播接受者(记得取消注册)
动态注册一般是在activity中的onStart()方法中注册,在onStop()方法中解除注册
//创建文件过滤器 IntentFilter intentFilter = new IntentFilter(); //添加Action intentFilter.addAction("DynamicBroadcast"); //注册 registerReceiver(myBroadcastReceiver, intentFilter);
*3,在想触发的条件下发送广播
Intent intent = new Intent(); //对应哪个广播 intent.setAction("DynamicBroadcast"); //发送 sendBroadcast(intent);
public class MainActivity extends Activity { private Button static_btn; private Button dynamic_btn; private BroadcastReceiver myBroadcastReceiver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.static_btn = (Button) this.findViewById(R.id.button1); this.dynamic_btn = (Button) this.findViewById(R.id.Button01); //广播接受者 myBroadcastReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { Toast.makeText(MainActivity.this,"你好,这里是动态广播!", Toast.LENGTH_LONG).show(); } }; this.dynamic_btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //发送广播 Intent intent = new Intent(); //标识intent.setAction("DynamicBroadcast"); sendBroadcast(intent); } }); } @Override protected void onStart() { super.onStart(); //注册广播 IntentFilter intentFilter = new IntentFilter(); //标识 intentFilter.addAction("DynamicBroadcast"); registerReceiver(myBroadcastReceiver, intentFilter);//参1,广播接受者,参2,文件过滤器 } @Override protected void onStop() { super.onStop(); //取消注册 unregisterReceiver(myBroadcastReceiver); } }
关于怎样使用broadcast实现activity和fragment之间的通信
仔细的看我上边的动态广播的步骤分析
*简单分析为:*1,写,一个广播接受者MyBroadcastReceiver(内部类或者外部类)在他的onReceive处理接受到广播的逻辑
*2,注册广播接受者(记得取消注册)
动态注册一般是在activity中的onStart()方法中注册,在onStop()方法中解除注册
//创建文件过滤器 IntentFilter intentFilter = new IntentFilter(); //添加Action intentFilter.addAction("DynamicBroadcast"); //注册 registerReceiver(myBroadcastReceiver, intentFilter);
*3,在想触发的条件下发送广播
Intent intent = new Intent(); //对应哪个广播 intent.setAction("DynamicBroadcast"); //发送 sendBroadcast(intent);
相关文章推荐
- Android中BroadcastReceiver(异步接收广播Intent)的使用
- Android使用BroadcastReceiver实现手机开机之后显示画面的功能
- Android提高之BroadcastReceiver实例详解
- 详解Android中BroadCastReceiver组件
- Android编程四大组件之BroadcastReceiver(广播接收者)用法实例
- Android开发之BroadcastReceiver用法实例分析
- 广播 BroadCastReceiver
- BroadcastReceiver应用详解
- Android中利用广播接受者简单几步实现拨号显示归属地
- 拦截短信
- Android中BroadcastReceiver理解
- 关于安卓手机开机自启动APP无法成功的问题
- android 监听SDCard安装和卸载的代码
- BroadcastReceiver实现android来去电录音功能(外录)
- 小米手机不支持对去电的拦截解决方案(BroadcastReceiver)
- BroadcastReceiver之开机自启动程序
- 工作笔记(1)--Android平板禁用虚拟按键
- 一步一步的学习BroadCastReceiver
- android广播经典小例子