Android Broadcast Receiver

说明

有时候我们在做android系统软件的时候,经常会需要做的事就是开机重新设置上次关机前的状态,当然,我们就会用到这个开机广播:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

利用这个开机广播,我们可以将上次app设置的数据,开机后设置回系统,这样看上去系统就像上次的状态。

Demo使用方法

AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<?xml version="1.0" encoding="utf-8"?>
    package="com.zengjf.ethernet"
    android:versionCode="1"
    android:versionName="1.0"
    android:sharedUserId="android.uid.system" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/theme" >
        ......
        <receiver android:name="com.zengjf.ethernet.BootBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <category android:name="android.intent.category.HOME" />
            </intent-filter>
        </receiver>
    </application>

    <!-- 开机启动权限 -->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
</manifest>
BootBroadcastReceiver.java
package com.zengjf.ethernet;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources.Theme;
import android.util.Log;

public class BootBroadcastReceiver extends BroadcastReceiver{
    /**
     * 背景知识:当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,
     * 它的字符串常量表示为 android.intent.action.BOOT_COMPLETED。只要在程序中“捕捉”
     * 到这个消息,再启动之即可。记住,Android框架说:Don''t call me, I''ll call you back。
     * 我们要做的是做好接收这个消息的准备,而实现的手段就是实现一个BroadcastReceiver。
     */
    static final String action_boot="android.intent.action.BOOT_COMPLETED";
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(action_boot)){
            new EthernetManager(context).resetInterface();
        }
    }
}

总结

站在使用的角度来说,所有的Android的应用都是可以有这些功能的,像我们常用的一些软件,开机就开始跟踪我们的一些数据的后台程序,其一般都使用了这些功能。

时间: 2024-09-24 15:59:39

Android Broadcast Receiver的相关文章

Android简明开发教程二十:Broadcast Receiver短信触发示例

Android 中BroadCast Receiver可以用来侦听广播事件.在使用Broadcast 之前,必须使用代码或是在AndroidManifest.xml 进行注册. 下面的例子实现使用短信来触发AndroidGraphics2DTutorial中的示例.短信格式为:@demo:xxxx ,xxxx为 示例名称,比如 , 启动Colors示例, 则向手机发送: @demo:Colors . 手机在收到短信后,先检测短信格式是否符合 @demo:xxxx, 若符合, 这启动对应的示例.

关闭 android 程序毁坏broadcast receiver

问题描述 关闭 android 程序毁坏broadcast receiver 在 main activity 的 onCreate 方法中,我注册了 broadcastReciver.但是当我关闭程序时有下面的错误: @429d47e0 that was originally registered here. Are you missing a call to unregisterReceiver()? 07-10 23:40:48.161: E/ActivityThread(20989): a

Android开发四大组件Activity/Service/Broadcast Receiver/Content Provider详解

Android开发的四大组件一.Activity详解二.Service详解三.Broadcast Receiver详解四.Content Provider详解外加一个重要组件 intent的详解. 一.Activity详解 Activty的生命周期的也就是它所在进程的生命周期. 一个Activity的启动顺序: onCreate()-->onStart()-->onResume() 当另一个Activity启动时:第一个Activity onPause()-->第二个Activity  

Android开发应用中Broadcast Receiver组件详解

BroadcastReceiver(广播接收器)是Android中的四大组件之一.下面就具体介绍一下Broadcast Receiver组件的用法. 下面是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件.很多广播是源自于系统代码的──比如,通知时区改变.电池电量低.拍摄了一张照片或者用户改变了语言选项.应用程序也可以进行广播──比如说,通知其它应用程序一些数据下载完成并处于可用状态. ②应用程序可以拥有任意数

contentprovider-点击返回按钮时 broadcast receiver 停止

问题描述 点击返回按钮时 broadcast receiver 停止 我创建了一个android sms 应用程序.我使用下面的代码来发送sms. public void sendSms(final String phoneNumber final String message){ String SENT = ""SMS_SENT""; String DELIVERED = ""SMS_DELIVERED""; Pending

android broadcast sendOrderedBroadcast

http://blog.csdn.net/zhongnan09/article/details/6552632 广播接收器:   广播接收者(BroadcastReceiver)用于监听系统事件或应用程序事件,通过调用Context.sendBroadcast().Context.sendOrderedBroadcast()可以向系统发送广播意图,通过广播一个意图(Intent)可以被多个广播接收者所接收,从而可以在不用修改原始的应用程序的情况下,让你对事件作出反应.        其中Cont

Android中的Intent广播(broadcast)简介

Intent可以使用sendBroadcast(), 在应用组件之间广播事件; 使用BroadReceiver类监听和响应Broadcast Intent, 需要注册(register)和过滤器(intent-filter); 1. 创建Broadcast Intent 构建需要广播的Intent, 包含Intent标识字符串, 和数据(data, extras), 使用sendBroadcast()发送; Intent标识字符串, 可以标识要广播的字符串, 应该是能够标志的唯一字符串, pub

Android基础知识之broadcast广播详解_Android

Android中的广播用的太多了,今天稍微总结一下. 按注册方式分为两种: 1.静态注册广播: 静态注册广播就是在androidManifest.xml文件中注册广播,假设我们要实现这样一个效果,在一个activity上点击按钮,发送一条广播,这条广播弹出一个toast,显示"静态"二字. 先看看广播接受者: public class MyBroadcast extends BroadcastReceiver { @Override public void onReceive(Cont

Android ApiDemos示例解析(26):App-&amp;gt;Notification-&amp;gt;IncomingMessage

应用程序可以使用Notifications来通知用户某个事件发生了(如收到短信).类NotificationManager 用来处理 Notification, NotificationManager可以: 在Status Bar上显示一个新的图标. 在Extended status bar 窗口上显示附加信息或是启动一个Activity. 显示背光/LED. 使设备震动. 发出声音等. 对于一些没有UI的应用程序组件(如Broadcast Receiver, Services)或是非活动状态的