Android--从零单排系列(7)--广播的使用和利用广播进行数据的传递
来源:互联网 发布:折弯机模具编程 编辑:程序博客网 时间:2024/05/16 15:27
做下广播的两种方式的使用总结
方式一:静态广播
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);
0 0
- Android--从零单排系列(7)--广播的使用和利用广播进行数据的传递
- Android--从零单排系列(8)--service的使用和利用service进行数据的传递
- Android--从零单排系列(5)--常用传感器的使用
- Android--从零单排系列(6)--相对应对话框popupwindow的优势和使用
- android 发送有序广播sendOrderBraodCast、截断广播和广播之间的数据传递
- android 发送有序广播sendOrderBraodCast、截断广播和广播之间的数据传递
- android 发送有序广播sendOrderBraodCast、截断广播和广播之间的数据传递
- Android--从零单排系列(3)--文件读写的操作
- Android--从零单排系列(4)--常用对话框和DialogFragment的优势
- Android 使用广播(BroadcastReceiver)传递数据
- android 广播的使用
- android 广播的使用
- android 广播的使用
- android 广播的使用
- android 广播的使用
- android 广播的使用
- Android的广播使用
- android 广播的使用
- HashMap与ConcurrentHashMap的区别
- SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)
- swiper的基础使用(十一)
- nginx作为下载文件服务器
- 中国剩余定理学习小结
- Android--从零单排系列(7)--广播的使用和利用广播进行数据的传递
- block动画、排序、ASI请求(六)
- html 笔记---基本组成 元素
- JVM常用参数
- swiper的基础教程(十二)
- Perl文件测试
- 测试测试
- Oracle入门学习(6)
- getSupportFragmentManager()未声明