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. ATL-style templates

    今天看了一下ATL自动生成的代码框架,然后研究了一下ATL类继承方式,感觉还挺特别的,特地从网上抄了一些例子和说明过来,以后复习时看看.先看一个WTL生成对话框的代码示例: #pragma once ...

  2. LayoutInflater.java (android-19)

    /* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Versi ...

  3. RMAN_学习笔记1_RMAN Structure概述和体系结构

    2014-12-23 Created By BaoXinjian

  4. [ActionScript 3.0] NetConnection建立客户端与服务器的双向连接

    一个客户端与服务器之间的接口测试的工具 <?xml version="1.0" encoding="utf-8"?> <!--- - - - ...

  5. Linux 服务器的网络配置 - 1. 查看 Linux 服务器的网络连接

    1. 查看 Linux 服务器的网络连接 1)查看主机名: liuqian@ubuntu:~$ hostname ubuntu 2)查看 ip 地址: 用 ifconfig 即可,这里介绍命令组合用法 ...

  6. 我的ZJ解题心得

    想要学好程序设计第一是要养成你的编程思维,也就是你对编程的一种概念和思维定式,长期的解题会让你产生解题经验进而形成一种思维定式,比如看到一个题目就立即想出这题要用什么方法解题这样.编程思维我认为还包括 ...

  7. AR

    http://jingyan.baidu.com/article/6766299727dcfc54d41b8455.html 1.注册.然后下载sdk(注册账号主要是为了第3步中制作识别图而用的) 下 ...

  8. JAVA设计模式之访问者模式

    在阎宏博士的<JAVA与模式>一书中开头是这样描述访问者(Visitor)模式的: 访问者模式是对象的行为模式.访问者模式的目的是封装一些施加于某种数据结构元素之上的操作.一旦这些操作需要 ...

  9. 2016-08-15: C++ traits

    #include <stdio.h> template <typename T> struct TraitsHelper { static const bool isPoint ...

  10. jsp配置项目时出错Deployment failure on Tomcat 6.x. Could not copy all resources to

    转自:http://www.2cto.com/kf/201201/116853.html 今天在网上部署项目的时候出现在了问题 tomcat一直部署不上 网上查了一下 原因记下来供大家查看 Deplo ...