AndroidManifast.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hanqi.testbr">
<!--接收开机完成的广播权限-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> <receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="20">
<action android:name="com.hanqi.textbr.action" />
</intent-filter>
</receiver> <service android:name=".BootService"/>
<receiver
android:name=".BootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
</application> </manifest>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.hanqi.testbr.MainActivity"
android:orientation="vertical"> <Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="发送一般广播"
android:onClick="bt1_onclick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="发送有序广播"
android:onClick="bt2_onclick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="动态注册广播接收器"
android:onClick="bt3_onclick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="解注册广播接收器"
android:onClick="bt4_onclick"/> </LinearLayout>

MainActivity.java

package com.hanqi.testbr;

import android.content.Intent;
import android.content.IntentFilter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast; public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void bt1_click(View v)
{
//发送一般广播
//1.准备意图Intent
Intent intent = new Intent("com.hanqi.textbr.action"); intent.putExtra("data","广播发出了");
//2.发送
sendBroadcast(intent); Toast.makeText(MainActivity.this, "我发送了广播", Toast.LENGTH_SHORT).show();
}
public void bt2_click(View v)
{
//发送有序广播
//1.准备意图Intent
Intent intent = new Intent("com.hanqi.textbr.action"); intent.putExtra("data", "有序广播发出了");
//2.发送
sendOrderedBroadcast(intent, null); Toast.makeText(MainActivity.this, "我发送了有序广播", Toast.LENGTH_SHORT).show();
}
MyReceiver2 myReceiver2;
public void bt3_onclick(View v)
{
if (myReceiver2 == null) {
//动态注册
//1.实例化接收器
myReceiver2 = new MyReceiver2();
//2.实例化IntentFilter
IntentFilter intentFilter = new IntentFilter("com.hanqi.textbr.action"); intentFilter.setPriority(1000); //3.注册 registerReceiver(myReceiver2, intentFilter);
}
}
public void bt4_onclick(View v)
{
//解注册
if (myReceiver2 != null) {
unregisterReceiver(myReceiver2);
myReceiver2 = null; Toast.makeText(MainActivity.this, "解注册接收器", Toast.LENGTH_SHORT).show();
}
} @Override
protected void onDestroy() {
super.onDestroy();
if (myReceiver2 != null) {
unregisterReceiver(myReceiver2); myReceiver2 =null;
//Toast.makeText(MainActivity.this, "解注册接收器", Toast.LENGTH_SHORT).show();
}
}
}

MyReceiver.java

package com.hanqi.testbr;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast; public class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
Log.e("ATG","构造广播接收器");
} @Override
public void onReceive(Context context, Intent intent) {
String str = intent.getStringExtra("data"); // 处理广播
Log.e("ATG","收到广播了 = "+str); Toast.makeText(context, "收到广播了 = "+str, Toast.LENGTH_SHORT).show();
//是否是有序广播
if (isOrderedBroadcast())
{
abortBroadcast();
Log.e("ATG", "我阻断了有序广播");
Toast.makeText(context, "我阻断了有序广播", Toast.LENGTH_SHORT).show();
} }
}

MyReceiver2.java


package com.hanqi.testbr;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log; public class MyReceiver2 extends BroadcastReceiver {
public MyReceiver2() {
Log.e("ATG","构造广播接收器2");
} @Override
public void onReceive(Context context, Intent intent) {
String str = intent.getStringExtra("data"); // 处理广播
Log.e("ATG","收到广播了2 = "+str); }
}

android BroadcastReceiver的更多相关文章

  1. android BroadcastReceiver ACTION_TIME_TICK 系统时间监听不到

    android BroadcastReceiver ACTION_TIME_TICK 系统时间监听不到 今天做android上的消息推送,启动了一个独立service,然后在里面监听系统的ACTION ...

  2. Android BroadcastReceiver 简介

    Android BroadcastReceiver 简介  在 Android 中使用 Activity, Service, Broadcast, BroadcastReceiver     活动(A ...

  3. 4、android BroadcastReceiver详细用法

    BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播. 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这 ...

  4. Android BroadcastReceiver广播接受者

    静态注册 配置清单表注册:只要曾经注册过哪怕关闭也能调用  方式一:sendBroadCastReceive   广播的步骤:       发送  无序广播,普通广播       (1).发送方    ...

  5. Android BroadcastReceiver实时监听电量

    Android系统中实时的监听手机电量以及开机启动功能都是通过BroadcastReceiver组件实现的.我们可以动态注册这个类的一个实例通过 Context.registerReceiver()方 ...

  6. Android BroadcastReceiver实例Demo(有序广播的发送)

    上一篇简介了广播的发送,这篇主要介绍下,有序广播的发送. 设置完相关属性的时候,广播就会依照有序的方式进行发送: 发送顺序: 先发送第二条广播: 再发送第一条广播: 最后发送第三条广播. 代码例如以下 ...

  7. Android BroadcastReceiver 接收收到短信的广播

    一.知识介绍 1.broadcastReceiver是广播接受者,四大组件之一. 2.Android中内置了很多系统级别的广播,可以在应用程序中得到各种系统的状态信息. 3.使用场景: ①当手机没有电 ...

  8. android BroadcastReceiver组件简单的使用

    1.清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=& ...

  9. Android BroadcastReceiver解析

    目录   示意图 1. 定义 即 广播,是一个全局的监听器,属于Android四大组件之一 Android 广播分为两个角色:广播发送者.广播接收者 2. 作用 监听 / 接收 应用 App 发出的广 ...

随机推荐

  1. AHS日志收集的三种方法

    硬件环境:(描述实验机器初始环境) 型号 DL380 G8 序列号   配置扩展   备注   软件环境: □  操作系统:无 连接方式: □  无 实验步骤: 1在ILO里点information点 ...

  2. DataTable/Array Linq查询,groupby

    DataTable Linq查询 1.查询DataRow IEnumerable<DataRow> q1 = from r in dt.AsEnumerable() == select r ...

  3. SQL Server 2012 使用警报调度数据库作业通知操作员

    如果想让数据库满足某种条件时,触动警报,然后执行一系列作业,并通知管理员,则需要配置警报 比如,当数据库日志达到一定大小如10M时触动警报,执行以下3个作业步骤:备份日志.收缩日志文件到2M.完备数据 ...

  4. js--使用构造器函数来新建对象及操作

    通过new操作符来调用函数,来达到访问对象this值得目的,构造器将其创建的对象返回给我们. 直接上代码 //创建构造器函数 function Gadget(name, color){ this.na ...

  5. [计算机取证技术] VDI-in-a-Box Analysis Results

    原文跳转: http://dig4n6.blogspot.tw/2013/07/vdi-in-box-analysis-results.html *文中引用图片如无法浏览,请科学上网* VDI-in- ...

  6. app测试与web测试的区别

    1.从功能测试的来讲的话,在流程和功能测试上是没有区别的.系统测试和一些细节可能会不一样. 那么我们就要先来了解,web和app的区别. web项目,一般都是b/s架构,基于浏览器的,而app则是c/ ...

  7. log4j按级别输出日志文件

    log4j.properties: BASE_DIR= /home/admin/preprocess-tmc-city/logs log4j.rootLogger=debug,stdout,debug ...

  8. devexpress中如何给TabPage控件的Tab定义背景色

    js: /*tab选项卡样式*/ .color .dxtc-link { background-color: #bf4e6a !important; } 后台代码: //选项卡样式 protected ...

  9. linux mono环境

    安装好 CentOS 6.5 之后 1.更新系统 在命令行下执行 yum –y update 2.安装必要的软件 yum -y install gcc gcc-c++ bison pkgconfig ...

  10. openldap主机访问控制(基于用户组)

    建立组织单元 cat << _EOF_ | ldapadd -x -W -H ldaps://master.local -D cn=manager,dc=suntv,dc=tv dn: o ...