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. 9、java中的final关键字

    /* final : 最终.作为一个修饰符, 1,可以修饰类,函数,变量. 2,被final修饰的类不可以被继承.为了避免被继承,被子类复写功能. 3,被final修饰的方法不可以被复写. 4,被fi ...

  2. SSIS 参数与环境

    微软 BI 系列随笔 - SSIS 基础 - 参数与环境 简介 在上一篇博客中,主要讲述了如何实现SSIS的项目部署,参见 微软 BI 系列随笔 - SSIS 2012 基础 - SSIS 项目部署模 ...

  3. PHP安装所最到的问题-解决方案

    Although Drupals 7+ run smoothly on PHP 5.3, Drupal 6 still feels much better with PHP 5.2. Even tho ...

  4. State Machine.(状态机)

    What is a State Machine? Any device that changes its state from one to another due to some actions a ...

  5. Codeforces Round #376 (Div. 2) C题 Socks(dsu+graphs+greedy)

    Socks Problem Description: Arseniy is already grown-up and independent. His mother decided to leave ...

  6. HTC Vive开发笔记之手柄震动

    手柄震动的代码SteamVR_Controller脚本的最上面的注释里面就有说明,其实也很简单 // Example usage: //这个栗子是左手柄震动 右手震动只需把Leftmost换成Righ ...

  7. ConfigParser.MissingSectionHeaderError: File contains no section headers.

    今天使用ConfigParser解析一个ini文件,报出如下错误: config.read(logFile) File "C:\Python26\lib\ConfigParser.py&qu ...

  8. android studio This client is too old to work with the working copy at

    http://www.cnblogs.com/maijin/archive/2013/01/09/2852330.html http://stackoverflow.com/questions/283 ...

  9. DDL DML DCL语句

    总体解释:DML(data manipulation language):自动提交的数据库操作语言       它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样 DDL( ...

  10. .net 使用ffmpeg.exe进行音频转码

    #region 音频转换 private int AudioIntervalTime = 100, iAudio = 0; private string strPath = "D:\\web ...