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

  • 相关阅读:
    6.3 The Memory Hierarchy
    去掉正在打印对话框
    SQL SERVER格式化字符串位数,不足补零
    WCF学习系列二_使用IIS发布WCF服务
    WCF学习系列一_创建第一个WCF服务
    IrisSkin4控件使用方法
    窗体加载后的设置焦点事件
    SQL 分组后取最小行号记录
    二维数组、齿形数组和游长变元表
    C#数组按值和按引用传递数组区别
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/5451929.html
Copyright © 2020-2023  润新知