##简介
注册分为静态注册和动态注册
静态注册是在xml中进行注册是常驻型的不随着程序的关闭而关闭
动态注册在代码中进行注册不是常驻型随着程序的关闭而关闭
###多个界面公用一个broadcastrecever

public abstract class MyBaseFragment extends Fragment {public static final String ACTION_1 = "com.example.action1";public static final String ACTION_2 = "com.example.action2";@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);IntentFilter intentFilter = new IntentFilter();intentFilter.addAction(ACTION_1);intentFilter.addAction(ACTION_2);getActivity().registerReceiver(receiver, intentFilter);Intent intentserver  = new Intent(getActivity(),MyNotificationServer.class);getActivity().startService(intentserver);}protected abstract void doAction1();protected abstract void doAction2(String arg);BroadcastReceiver receiver = new BroadcastReceiver() {@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if (action.equals(ACTION_1)) {doAction1();} else if (action.equals(ACTION_2)) {String arg = intent.getStringExtra("arg");doAction2(arg);}}};@Overridepublic void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();getActivity().unregisterReceiver(receiver);}}
 @Overrideprotected void doAction1() {// TODO Auto-generated method stub}@Overrideprotected void doAction2(String arg) {// TODO Auto-generated method stubLog.d("tag", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"+arg);if (arg.equals("1")) {Log.d("tag", arg);handler.sendEmptyMessage(MyConfig.UPDATA_TOKEN_WFJ);
//         image.setVisibility(View.VISIBLE);   }}
Intent intent = new Intent();intent.setAction(MyBaseFragment.ACTION_1);intent.setAction(MyBaseFragment.ACTION_2);intent.putExtra("arg","1");sendBroadcast(intent);
<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:orientation="vertical" tools:context=".MainActivity"><Buttonandroid:id="@+id/button_send"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="发送广播"/><Buttonandroid:id="@+id/button_alarm"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="闹钟"/><Buttonandroid:id="@+id/button_alarm_stop"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="停止闹钟"/></LinearLayout>

####MyReceiver extends BroadcastReceiver

public class Reciever extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Toast.makeText(context,"我收到了广播",Toast.LENGTH_SHORT).show();Log.d("TAG", "闹钟");}
}

####MainActivity

public class MainActivity extends Activity {private Button mButtonSend;private Reciever mReciever;private AlarmManager mAlarmManager;private Button mButtonAlarm;private Button mButtonStopAlarm;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mAlarmManager= (AlarmManager) getSystemService(Context.ALARM_SERVICE);mReciever=new Reciever();IntentFilter filter=new IntentFilter();filter.addAction("com.lingzhuo");registerReceiver(mReciever,filter);//注册接收ID号mButtonSend= (Button) findViewById( R.id.button_send);mButtonSend.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent();intent.setAction("com.lingzhuo");sendBroadcast(intent);}});mButtonAlarm= (Button) findViewById(R.id.button_alarm);mButtonAlarm.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent1=new Intent();intent1.setAction("com.lingzhuo");PendingIntent pendingIntent=PendingIntent.getBroadcast(getApplicationContext(),0x23,intent1,PendingIntent.FLAG_UPDATE_CURRENT);mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+3000,3000,pendingIntent);Log.d("TAG", "asdasdasdas");}});mButtonStopAlarm= (Button) findViewById(R.id.button_alarm_stop);mButtonStopAlarm.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent=new Intent();intent.setAction("com.lingzhuo");PendingIntent pendingIntent=PendingIntent.getBroadcast(getApplicationContext(),0x23,intent,PendingIntent.FLAG_UPDATE_CURRENT);mAlarmManager.cancel(pendingIntent);}});}
//注册ID以后必须要销毁不然会报错@Overrideprotected void onDestroy() {super.onDestroy();unregisterReceiver(mReciever);}
}

BroadcastRecever相关推荐

  1. Android自动待机和唤醒,Android深度睡眠和唤醒锁

    我创建了一个在所有手机上均可正常运行的android应用.但是在我的阿尔卡特手机中,手机无法进入深度睡眠模式,且数据网络出现故障,因此应用程序无法获取数据网络,也无法同步服务器数据. 我的设计 - S ...

  2. Android唤醒锁作用,Android深度睡眠和唤醒锁

    我创建了一款在所有手机中运行良好的Android应用程序.但在我的阿尔卡特手机中,手机并未进入深度睡眠模式,数据网络出现故障,因此应用程序无法获取数据网络,也无法同步服务器中的数据.Android深度 ...

  3. android休眠 wifi唤醒,Android深度睡眠和唤醒锁

    我创建了一个在所有手机上均可正常运行的android应用.但是在我的阿尔卡特手机中,手机无法进入深度睡眠模式,且数据网络出现故障,因此应用程序无法获取数据网络,也无法同步服务器数据. 我的设计 - S ...

最新文章

  1. 《Java虚拟机规范》阅读(三):Class文件格式
  2. 团队不需要在计划会上考虑到所有事情
  3. mysql1040_mysql Error 1040 too many connection解决办法
  4. 北京奥运会和上海世博会广告登上巴士 亮相纽约
  5. 乐源机器人优点跟缺点_机床实现自动化上下料选桁架机械手还是关节机器人好?...
  6. 第四周实践项目4 建立算法库——双链表
  7. redis的五种数据类型及常见操作
  8. __len__的作用
  9. wxWidgets:wxScrollWinEvent类用法
  10. iframe跨域通信的通用解决方案-第二弹!(终极解决方案)
  11. 惯性导航算法_自动驾驶关键技术报告:惯性导航和背后的芯片大战
  12. 有序表归并算法(数据结构学习笔记)
  13. 通达OA定时任务-未打卡提醒
  14. html table表格重叠,详解html中表格table的行列合并问题解决
  15. 【从零开始vnpy量化投资】三. 手动安装vnpy环境
  16. 粉末成型工艺(粉末冶金粉末注射成型)
  17. 内网穿透技术有哪些(经验分享)
  18. 魅族便签,能否成为国内便签应用的No.1?
  19. word学习-清除格式+清除链接
  20. TCP/UDP常用端口列表

热门文章

  1. 如何编写一个Java帮助文档
  2. java的抽象方法和抽象类
  3. python操作手机app超详细步骤
  4. kubernetes v1.20项目之部署二进制安装_系统环境配置
  5. 推荐六款图片素材网站
  6. [设计模式] IMPL 模式
  7. 十分钟掌握折半查找法,
  8. 启动本地mysql的几种方式
  9. (一)分布式存储综述
  10. ipad html 禁止放大镜,IOs Cordova长按显示文本选择放大镜即使禁用文本选择,如何删除?...