Android广播接收器Broadcast Receiver-android学习之旅(十二)
来源:互联网 发布:卡通艺术字软件下载 编辑:程序博客网 时间:2024/06/16 04:41
首先继承BroadcastReceiver类,并在manifest中注册
public class MyReceiver extends BroadcastReceiver { public MyReceiver() { } @Override public void onReceive(Context context, Intent intent) { throw new UnsupportedOperationException("Not yet implemented"); }}
在mainifest中注册
<receiver android:name=".MyReceiver" android:enabled="true" android:exported="true" > </receiver>
动态注册和取消广播接收器
上代码:
Receiver部分:
public class MyReceiver extends BroadcastReceiver { public static final String ACTION = "peng.liu.testview.intent.action.MyReceiver"; public MyReceiver() { } @Override public void onReceive(Context context, Intent intent) { System.out.println(intent.getStringExtra("data")+"hello"); }}
主类部分:
public class MainActivity extends Activity implements View.OnClickListener{ private MyReceiver receiver = null; private Button send,reg,unReg; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.send).setOnClickListener(this); findViewById(R.id.reg).setOnClickListener(this); findViewById(R.id.unReg).setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.send: Intent intent = new Intent(MyReceiver.ACTION); intent.putExtra("data","jiekxueyuan"); sendBroadcast(intent); break; case R.id.reg: if (receiver == null){ receiver = new MyReceiver(); registerReceiver(receiver,new IntentFilter(MyReceiver.ACTION)); } break; case R.id.unReg: if (receiver != null){ unregisterReceiver(receiver); receiver = null; } break; } }}
布局代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="reg" android:id="@+id/reg" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="unReg" android:id="@+id/unReg" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="send" android:id="@+id/send" /></LinearLayout>
广播的优先级
这次我们在manifest中静态注册
<receiver android:name=".MyReceiver" android:enabled="true" android:exported="true" > <intent-filter android:priority="8"> <action android:name="peng.liu.testview.intent.action.MyReceiver"/> </intent-filter> </receiver> <receiver android:name=".MyReceiver2" android:enabled="true" android:exported="true" > <intent-filter android:priority="9"> <action android:name="peng.liu.testview.intent.action.MyReceiver"/> </intent-filter> </receiver>
android:priority:用于设置优先级,数字越大,优先级越高。
高优先级的终端广播
//发送部分注意是发送sendOrderedBroadcast(intent,null);Intent intent = new Intent(MyReceiver.ACTION); intent.putExtra("data","jiekxueyuan"); sendOrderedBroadcast(intent,null);
接收部分
public class MyReceiver2 extends BroadcastReceiver { public MyReceiver2() { } @Override public void onReceive(Context context, Intent intent) { System.out.println(intent.getStringExtra("data")); //这一户用于中断后面的低优先级的接受 abortBroadcast(); }}
0 0
- Android广播接收器Broadcast Receiver-android学习之旅(十二)
- Android学习笔记之广播接收器(Broadcast Receiver)
- Android四大组件之广播接收器 Broadcast Receiver
- 【Android学习之道】 四大组件之广播接收器Broadcast Receiver
- 玩转Android---组件篇---Broadcast Receiver(广播接收器)
- 玩转Android---组件篇---Broadcast Receiver(广播接收器)
- Broadcast Receiver(广播接收器)
- Broadcast Receiver(广播接收器)
- Broadcast Receiver(广播接收器)
- broadcast receiver广播接收器
- 四大组件之广播接收器-Broadcast Receiver
- Android学习Broadcast Receiver(广播接收者) 注意事项
- Android之广播接收者 broadcast receiver
- 游走Android系列之广播接收(Broadcast Receiver)
- 广播接收器 broadcast sendOrderedBroadcast android
- 广播接收器 broadcast sendOrderedBroadcast android
- 广播接收器 broadcast sendOrderedBroadcast android
- 广播接收器 broadcast sendOrderedBroadcast android
- super的作用
- android四大组件
- 常见插值方法
- C++学习 boost学习之-shared_ptr
- ListView的点击事件方法参数解释
- Android广播接收器Broadcast Receiver-android学习之旅(十二)
- android网络编程所涉及到的知识
- Strategy----策略模式
- WOai wojiao
- 鸡啄米vc++2010系列38(文档、视图和框架:概述)
- wireshark抓包dhcp
- Displaying Bitmaps Efficiently
- request中url
- 两种高效的事件处理模式