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的应用都是可以有这些功能的,像我们常用的一些软件,开机就开始跟踪我们的一些数据的后台程序,其一般都使用了这些功能。

posted on 2016-05-02 09:51  zengjf  阅读(275)  评论(0编辑  收藏  举报

导航