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

一、开机广播监听:

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

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

  1. 【Android】Android 监听apk安装替换卸载广播

    [Android]Android 监听apk安装替换卸载广播 首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDE ...

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

    需求:有时候,我们需要自己的程序在开机后自动运行;在关机时,记录一些信息到文件中. 一.开机广播监听Android系统启动完成后会自动发出启动完成广播(android.intent.action.BO ...

  3. android 监听去电实现ip拨号 广播接收者

    利用广播实现ip拨号 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...

  4. Ubuntu 拦截并监听 power button 的关机消息

    system:ubuntu 18.04 platform:rockchip 3399 board:NanoPi M4 前言 物理上的电源按键短按之后,系统直接硬关机了,导致应用程序无法保护现场,就直接 ...

  5. Android开机广播和关机广播

    有些时候我们需要我们的程序在系统开机后能自动运行,这个时候我们可以使用Android中的广播机制,编写一个继承BroadcastReceiver的类,接受系统启动关闭广播.代码如下: /** *@au ...

  6. Android 监听apk安装替换卸载广播

    首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程 ...

  7. Android——监听开机启动,自启动应用程序

    1.首先继承一个broadcastreceiver public class ConnectBroadCastReceiver extends BroadcastReceiver { @Overrid ...

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

    为什么监听不到开机广播action.BOOT_COMPLETED 1. 说明 Android手机开机后,会发送android.intent.action.BOOT_COMPLETED广播,监听这个广播 ...

  9. Android-应用安装/替换/卸载/广播监听

    在上一篇博客Android-开关机的广播,中介绍了,如何订阅接收者,去接收系统发送的开机/关机广播, 而这篇博客是订阅接收者 去接收应用的(安装/替换/卸载) 三种广播 订阅 接收者 去接收 应用的 ...

随机推荐

  1. 一段代码显示出电脑连过所有wifi的密码

    1.打开运行 2.输入cmd后回车 3.输入如下代码 for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show pro ...

  2. Image Processing and Analysis_15_Image Registration:HAIRIS: A Method for Automatic Image Registration Through Histogram-Based Image Segmentation——2011

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  3. idou老师教你学Istio :5分钟简析Istio异常检测

    异常检测 异常检测和踢出异常主机是一个动态检查上游主机是否正常工作,对不健康主机进行移除的过程.异常检测是一种被动健康检查,根据返回状态码来判断是否满足移除条件,最后将主机移除,首先我们来了解下驱逐算 ...

  4. jquery进行each遍历时,根据条件取消某项操作

    示例代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" c ...

  5. 1113 form表单与css选择器

    目录 1.form表单 form元素 特点 参数 form元素内的控件 1.input的使用 2.select标签 3.textarea元素 4.autofocus属性 2.CSS 1.基础语法 cs ...

  6. Elasticsearch: nested对象

    在处理大量数据时,关系数据库存在很多问题. 无论是速度,高效处理,有效并行化,可扩展性还是成本,当数据量开始增长时,关系数据库都会失败.该关系数据库的另一个挑战是必须预先定义关系和模式.Elastic ...

  7. [Google Guava] 6-字符串处理:分割,连接,填充

    原文链接 译文链接 译者:沈义扬,校对:丁一 连接器[Joiner] 用分隔符把字符串序列连接起来也可能会遇上不必要的麻烦.如果字符串序列中含有null,那连接操作会更难.Fluent风格的Joine ...

  8. 如何获得div对象的绝对坐标

    <script>             function test() {                 var $div0 = $('#0');                 va ...

  9. HDU 6129 - Just do it | 2017 Multi-University Training Contest 7

    比赛时脑子一直想着按位卷积... 按题解的思路: /* HDU 6129 - Just do it [ 规律,组合数 ] | 2017 Multi-University Training Contes ...

  10. Educational Codeforces Round 72 (Rated for Div. 2) A题

    Problem Description: You play your favourite game yet another time. You chose the character you didn ...