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
ndroid如何监听开机广播和关机广播的更多相关文章
- 【Android】Android 监听apk安装替换卸载广播
[Android]Android 监听apk安装替换卸载广播 首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDE ...
- Andoird 监听开机广播和关机广播
需求:有时候,我们需要自己的程序在开机后自动运行;在关机时,记录一些信息到文件中. 一.开机广播监听Android系统启动完成后会自动发出启动完成广播(android.intent.action.BO ...
- android 监听去电实现ip拨号 广播接收者
利用广播实现ip拨号 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- Ubuntu 拦截并监听 power button 的关机消息
system:ubuntu 18.04 platform:rockchip 3399 board:NanoPi M4 前言 物理上的电源按键短按之后,系统直接硬关机了,导致应用程序无法保护现场,就直接 ...
- Android开机广播和关机广播
有些时候我们需要我们的程序在系统开机后能自动运行,这个时候我们可以使用Android中的广播机制,编写一个继承BroadcastReceiver的类,接受系统启动关闭广播.代码如下: /** *@au ...
- Android 监听apk安装替换卸载广播
首先是要获取应用的安装状态,通过广播的形式 以下是和应用程序相关的Broadcast Action ACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程 ...
- Android——监听开机启动,自启动应用程序
1.首先继承一个broadcastreceiver public class ConnectBroadCastReceiver extends BroadcastReceiver { @Overrid ...
- 为什么监听不到开机广播action.BOOT_COMPLETED
为什么监听不到开机广播action.BOOT_COMPLETED 1. 说明 Android手机开机后,会发送android.intent.action.BOOT_COMPLETED广播,监听这个广播 ...
- Android-应用安装/替换/卸载/广播监听
在上一篇博客Android-开关机的广播,中介绍了,如何订阅接收者,去接收系统发送的开机/关机广播, 而这篇博客是订阅接收者 去接收应用的(安装/替换/卸载) 三种广播 订阅 接收者 去接收 应用的 ...
随机推荐
- 解决pynq联网问题
注:本文只在一种环境下实验!不一定能适用很多环境 一.由于校园网的限制,pynq之间连接路由器存在无法联网的情况! 因此本文主要针对需要登录认证问题提供一种解决方案: 网络环境:校园网络 网络登录:锐 ...
- C#中设置密码框 ,用符号代替密码
添加控件 添加控件 确认键代码 private void button1_Click(object sender, EventArgs e) { //修改密码.新密码,重复新密码,两次输入的新密码必须 ...
- Python3+Appium学习笔记06-noReset参数
百度很多文章说noReset这个参数是用来防止重复安装app的.可能这是以前的用法.目前最新版本appium默认是清除session信息,并且不会删除应用的. noReset这个参数,根据appi ...
- 获取当前日期或者某个日期相隔N天内的全部日期以及星期几
业务需要需要获取当前日期相隔30天内的全部日期以及星期几,没插件因此特地写了一个: /* 说明:获取当前日期或者某个日期相隔N天内的全部日期以及星期几 使用: let test = new getdi ...
- resultSet.getMetaData() 获得表结构
1.得到查询结果,一个数据集 rs = stat.executeQuery("select * from " + table_name + " limit " ...
- ASP.NET MVC Liu_Cabbage 个人博客
RightControl_Blog 介绍 前台使用燕十三博客前端模板,后台基于RightControl .NET通用角色权限管理系统搭建,已完成.项目地址:http://www.baocaige.to ...
- PHP mysqli_connect_errno() 函数
返回上一次连接错误的错误代码: <?php $con=mysqli_connect("localhost","wrong_user","my_p ...
- 005_FreeRTOS任务挂起和恢复
(一) (二)使用,参数是任务句柄 //key任务函数 void key_task(void *pvParameters) { u8 key; ) { key=KEY_Scan(); switch(k ...
- 004_linuxC++之_函数的重载
(一)源码下载 (一) 函数的重载:同一个命名函数,通过传入参数的不同,调用不一样的函数 上面程序的运行结果: (二)函数只能通过参数的不一样重载函数,不能通过返回参数的不一样重载函数 运行结果报错 ...
- 安裝開源BBS軟件YAF時碰到的問題
1.下載 http://yetanotherforum.net/download.aspx 安裝說明 http://www.drreddys.com/quest/readme.htm 其實只要打開根目 ...