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

一、开机广播监听:

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. TSN(Temporal Segment Networks)

    一.算法详解 二.代码解析(pytorch版) 训练代码:https://blog.csdn.net/u014380165/article/details/79058147 测试代码:https:// ...

  2. smart_ptr之shared_ptr

    智能指针的概念 c++11标准和boost都提供了智能指针的功能.智能指针是普通指针的封装,智能指针是一个对象,对象里面包含了原生指针.可以使用智能指针对象的get()方法可获得封装在里面的原生指针. ...

  3. Subordinates(贪心)

    题目大意: 一共有N个员工,其中最高领导人是编号s的人,每个人都只有一个直接领导,每个人都说出了自己领导的个数,问最少有几个人撒谎了. 思路: 合理的贪心是该把排最后的数变成缺少的数字,然后继续判断. ...

  4. java学习笔记13-重写与重载

    重写 重写是子类对父类允许访问的方法实现过程进行重新编写,返回值和参数都不能变. 重写方法不能抛出新的检查异常和比被重写方法更加宽泛的异常 访问权限不能比被重写方法低 声明为final的方法不能被重写 ...

  5. [ 原创 ] Map之HashMap的使用方法

    import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;/ ...

  6. ES使用org.elasticsearch.client.transport.NoNodeAvailableException: No node available

    1) 端口错 client = new TransportClient().addTransportAddress(new InetSocketTransportAddress(ipAddress, ...

  7. SpringBoot启动过程原理(转)

    1.1 Springboot启动: @SpringBootApplication public class ServerApplication { public static void main(St ...

  8. Python 13--数据库

  9. Proxy详解

    一.Proxy基础 1. 什么是Proxy? Proxy是一个构造函数,可以通过它生成一个Proxy实例. const proxy = new Proxy(target, handler); // t ...

  10. scrapy 学习笔记2 数据持久化

    前情提要:校花网爬取,并进行数据持久化 数据持久化操作 --编码流程: 1:数据解析 2:封装item 类 3: 将解析的数据存储到实例化好的item 对象中 4:提交item 5:管道接收item然 ...