ndroid如何监听开机广播和关机广播

需求描述:有些时候,我们需要我们的程序在开机后能自动运行,在系统即将关闭时,能写入一些记录到指定的文件里。

一、开机广播监听:

Android系统启动完成后会发出启动完成广播(android.intent.action.BOOT_COMPLETED),所有注册了接收启动完成广播的接收器(BroadcastReceiver)都会收到此广播。

1、在AndroidManifest.xml文件里添加授予应用程序访问系统开机事件的权限

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

2、编写系统发出的开机启动完成广播的接收器。自定类继承BroadcastReceiver类,代码如下:

package com.android.test;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

/**
 * 类名:BootBroadcastReceiver
 * 功能描述:启动时系统发出的广播的接收器
 * #<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 * @author android_ls
 */
public class BootBroadcastReceiver extends BroadcastReceiver {

    private static final String TAG = "BootBroadcastReceiver";

    private static final String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(TAG, "Boot this system , BootBroadcastReceiver onReceive()");

        if (intent.getAction().equals(ACTION_BOOT)) {
            Log.i(TAG, "BootBroadcastReceiver onReceive(), Do thing!");
        }
    }
}

3、在AndroidManifest.xml文件里注册广播接收器

   <receiver android:name="com.android.test.BootBroadcastReceiver" >
            <intent-filter >
                <action android:name="android.intent.action.BOOT_COMPLETED" />

                <category android:name="android.intent.category.HOME" />
            </intent-filter>
        </receiver>

二、关机广播监听:

Android系统提供了与开机广播对应的关机广播,在系统即将关闭时发出此广播。

1、编写在系统即将关闭时发出的广播的接收器。自定类继承BroadcastReceiver类,代码如下:

package com.android.test;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

/**
 * 类名:ShutdownBroadcastReceiver
 * 功能描述:在系统即将关闭时发出的广播的接收器
 * @author android_ls
 */
public class ShutdownBroadcastReceiver extends BroadcastReceiver {

    private static final String TAG = "ShutdownBroadcastReceiver";

    private static final String ACTION_SHUTDOWN = "android.intent.action.ACTION_SHUTDOWN";

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i(TAG, "Shut down this system, ShutdownBroadcastReceiver onReceive()");

        if (intent.getAction().equals(ACTION_SHUTDOWN)) {
            Log.i(TAG, "ShutdownBroadcastReceiver onReceive(), Do thing!");
        }
    }
}

2、在AndroidManifest.xml文件里注册广播接收器

   <receiver android:name="com.android.test.ShutdownBroadcastReceiver" >
            <intent-filter >
                <action android:name="android.intent.action.ACTION_SHUTDOWN" />

                <category android:name="android.intent.category.HOME" />
            </intent-filter>
        </receiver>

注:开机关机操作有两种方式:1、重新启动,关闭后立刻又开机。这种情况下,开机启动完成和在系统即将关闭时发出的广播,都可以接收到。2、关机,这时的在系统即将关闭时发出的广播接收不到(我测试时遇到的情况)。开机,开机启动完成发出的广播时可以接收到的。

http://blog.csdn.net/android_ls/article/details/8605915

时间: 2024-10-16 12:45:20

ndroid如何监听开机广播和关机广播的相关文章

默认开机启动;通过Broadcastreceiver广播监听开机启动,实现&quot;没有activity&quot;的自启服务或者自启应用程序。

一.首先介绍一下如何开机启动: 第一种:  监控RECEIVE_BOOT_COMPLETED,即开机启动事件 第二种: 监控sd卡mount事件  开机总会扫描sd卡吧? 监控sd卡事件也有类似开机启动效果,特别app安装在sd卡的情况下有些os是抓取不到RECEIVE_BOOT_COMPLETED 第三种: android:installLocation="internalOnly", 限制app的安装位置,使其能抓取到RECEIVE_BOOT_COMPLETED 我们也可以同时使用

Android 监听开机广播启动服务 动态注册时间变化监听广播

开机广播权限 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 开机广播 注册 <receiver android:name="com.stone.receiver.BootedReceiver"> <intent-filter> <action android:name="android.intent.acti

linux下数据库实例监听开机自启动设置

linux下数据库实例监听开机自启动设置 2016/5/16 zhanky 脚本介绍 在开始之前,我们先介绍一下几个会用到的脚本. oratab oratab文件是在创建数据库实例时建立的,在安装时使用root用户执行root.sh脚本后得到.(如果忘记也可以直接手动创建.) 在$ORACLE_HOME/bin目录下的$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut需要调用/etc/oratab文件,如果不存在,dbstart和dbshut将失败,

Andoird 监听开机广播和关机广播

需求:有时候,我们需要自己的程序在开机后自动运行;在关机时,记录一些信息到文件中. 一.开机广播监听Android系统启动完成后会自动发出启动完成广播(android.intent.action.BOOT_COMPLETED),所有注册了接收启动完成广播的接收器(BroadcastReceiver)都会收到此广播. ①编写一个继承BroadcastReceiver的类,接受系统启动完成广播. 1 package com.example.systemtest; 2 3 import android

为什么监听不到开机广播action.BOOT_COMPLETED

为什么监听不到开机广播action.BOOT_COMPLETED 1. 说明 Android手机开机后,会发送android.intent.action.BOOT_COMPLETED广播,监听这个广播就能监听开机. 2. 代码  注册广播   <receiver android:name="com.javen.broadcast.BootBroadCastReceiver" > <intent-filter> <action android:name=&q

Android之——监听手机开机事件

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47028535 本文中,主要通过监听开机广播来达到监听手机开机状态的操作,在Android中可以通过广播机制来监听一些系统服务和系统级的操作,好了,不多说,直接上代码吧 1.创建广播接收者类BootCompleteReceiver 这个类中的回调方法是手机开机后自动调用,我在这里只是打印出相关日志,具体的业务逻辑大家可以自己根据自己的具体需求去实现. 代码如下: package c

Android手机使用广播监听手机收到的短信

我们使用的Android手机在收到短信的时候会发出一条系统广播.该条广播中存放着接收到的短信的详细信息.本文将详细介绍如何通过动态注册广播来监听短信. 注册广播有两种方式,一种是动态注册,另一种是静态注册.动态注册,顾名思义就是在程序运行时注册的,需要用到广播的时候就注册,用完即销毁.静态注是在AndroidManifest.xml中注册的,在<application>中使用<receiver>标签注册. 那么如何创建一个监听短信的广播接收器呢,其实只需要新建一个类,让这个类继承B

android 蓝牙设备监听广播

蓝牙权限 <uses-permission android:name="android.permission.BLUETOOTH" /> 1.监听手机本身蓝牙状态的广播 手机蓝牙开启关闭时发送 action: BluetoothAdapter.ACTION_STATE_CHANGED if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { int state = intent.getIntExtra(Bluet

ORACLE 12C 开机自动启动监听、CDB、PDB

linux下数据库实例监听开机自启动设置2018年8月1日 zhanky 测试介绍系统版本:Oracle linux 7.2 x64数据库版本:Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production实例名:orcl CDP:orcl PDB:orcl1.orcl2ORACLE_HOME:/u01/app/oracle/product/12.2.0/db_1 一.设置监听和CDB开机自启通过使用rc.