扣丁学堂——BroadcastReceiver(广播)
来源:互联网 发布:淘宝地区怎么修改 编辑:程序博客网 时间:2024/05/11 04:51
源码见本文
一丶测试效果:略
二丶课程讲解
1.普通广播代码:
广播接收器:
public class MyReceiver01 extends BroadcastReceiver { public MyReceiver01() { } @Override public void onReceive(Context context, Intent intent) { String i = intent.getStringExtra("info"); Toast.makeText(context, i, Toast.LENGTH_SHORT).show(); }}2.Activity.java
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void sendNormal(View v) { Intent intent = new Intent("com.ke.action.MY_BROADCAST");//action字符相当于广播的频率一样 intent.putExtra("info", "this is boradcast");//要发送广播的内容 this.sendBroadcast(intent);//发送广播 }}3.清单文件
<receiver android:name=".MyReceiver01" android:enabled="true" android:exported="true" > <intent-filter> <action android:name="com.ke.action.MY_BROADCAST"></action> </intent-filter>
上面是静态注册,这里就说一下动态注册
广播接收器2
public class MyReceiver2 extends BroadcastReceiver { public MyReceiver2() { } @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context,"动态接受广播",Toast.LENGTH_SHORT).show(); }}Activity.java
public class MainActivity extends AppCompatActivity { private MyReceiver2 receiver2=new MyReceiver2(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }//该方法注册广播 @Override protected void onResume() { super.onResume(); IntentFilter filter=new IntentFilter(); filter.addAction("com.ke.action.MY_BROADCAST"); registerReceiver(receiver2,filter); }//该方法解除广播 @Override protected void onPause() { unregisterReceiver(receiver2); super.onPause(); }这里效果演示是先输出动态广播
MainActivity.java
public void sendOrderClick(View v) { Intent intent = new Intent("com.andorid.keke"); //参数:intent ,接收权限:接收广播接收器需的权限 this.sendOrderedBroadcast(intent, null);}MyReceiver3
public class MyReceiver3 extends BroadcastReceiver { public MyReceiver3() { } @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "有序广播接收器-1", Toast.LENGTH_SHORT).show(); //中断有序广播 //this.abortBroadcast(); Bundle data = new Bundle(); data.putString("info","广播1"); this.setResultExtras(data);//将数据发送到下一个广播接收器中 }}MyReceiver4
public class MyReceiver4 extends BroadcastReceiver { public MyReceiver4() { } @Override public void onReceive(Context context, Intent intent) { Bundle data = getResultExtras(false);// false:没有的话就不创建 Toast.makeText(context, data.getString("info").toString(), Toast.LENGTH_SHORT).show(); }}清单文件
<receiver android:name=".MyReceiver3" android:enabled="true" android:exported="true" > <intent-filter android:priority="200"> <action android:name="com.andorid.keke"></action> </intent-filter></receiver><receiver android:name=".MyReceiver4" android:enabled="true" android:exported="true" > <intent-filter android:priority="100"> <action android:name="com.andorid.keke"></action> </intent-filter></receiver>
演示了一个跳转发送例子略
关于广播后期再加强,这里只是提到基本操作。
0 0
- 扣丁学堂——BroadcastReceiver(广播)
- BroadcastReceiver—普通广播
- 广播接收器——BroadcastReceiver
- 安卓四大组件——BroadcastReceiver(广播)
- BroadcastReceiver入门(一)——广播发送与接收
- Android——BroadcastReceiver 广播 短信拦截
- Android基础——广播接收者BroadcastReceiver
- 发送有序广播——BroadcastReceiver
- Android基础07—BroadCastReceiver广播
- 四大组件 — BroadCastReceiver广播接收者
- 广播接收者(BroadcastReceiver)
- BroadcastReceiver(广播)
- BroadcastReceiver(广播接收器)
- BroadcastReceiver(广播接收者)
- BroadcastReceiver(广播)
- 广播BroadcastReceiver(1)
- 广播BroadcastReceiver(2)
- Android广播(BroadcastReceiver)
- POJ 2718 Smallest Difference(贪心 or next_permutation()暴力枚举)
- Mysql学习总结(12)——21分钟Mysql入门教程
- 蓝牙自动打开并配对
- TypedValue.applyDimension 中dp和sp之间转化的真相
- java 正则表达式 匹配问题
- 扣丁学堂——BroadcastReceiver(广播)
- linux2.6.14内核下移植16C554驱动
- Struts2-Interceptor的逻辑意义
- 流动布局生成无限制图片加载
- Linux上常用命令、netstat命令、端口状态,减少Time_wait的办法
- Linux-2.6.32.2下为ST16C554移植驱动的经历
- android 自定义view实现流式布局
- 刷新section和cell
- fatal error: openssl/evp.h: 没有那个文件或目录