01 private final BroadcastReceiver homePressReceiver = new BroadcastReceiver() {
02 final String SYSTEM_DIALOG_REASON_KEY = "reason";
03 final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";
04 @Override
05 public void onReceive(Context context, Intent intent) {
06 String action = intent.getAction();
07 if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
08 String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
09 if (reason != null && reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
10 //自己随意控制程序,关闭...
11 }
12 }
13 }
14 };

然后在onreate()方法中,注册

1 final IntentFilter homeFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
2 registerReceiver(homePressReceiver, homeFilter);

当然最后为了程序的严谨性也是为了防止出错,我们在onDestory()方法中,也要解除注册

1 if(homePressReceiver != null){
2 try {
3 unregisterReceiver(homePressReceiver);
4 catch (Exception e) {
5 Log.e(TAG, "unregisterReceiver homePressReceiver failure :"+e.getCause());
6 }
7 }

2,电源监听,先要有权限

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

然后监听两个action

01 Intent.ACTION_SCREEN_OFF
02 Intent.ACTION_SCREEN_ON
03 private final BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {
04 @Override
05 public void onReceive(final Context context, final Intent intent) {
06 final String action = intent.getAction();
07 if (Intent.ACTION_SCREEN_OFF.equals(action)) {
08 //退出程序...
09 }
10 }
11 };
12 onCreate()方法中注册
13 IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
14 registerReceiver(mBatInfoReceiver, filter);
15 onDestory()方法中解除注册
16 if(mBatInfoReceiver != null){
17 try {
18 unregisterReceiver(mBatInfoReceiver);
19 catch (Exception e) {
20 Log.e(TAG, "unregisterReceiver mBatInfoReceiver failure :"+e.getCause());
21 }
22 }

android程序监听home键与电源键的更多相关文章

  1. Android 开发 监听back并且执行home键功能

    方法一: 在activity中重写onBackPressed()方法 ,注意此处一定要注释或者删除 super.onBackPressed();方法 @Override public void onB ...

  2. Android 如何监听返回键,弹出一个退出对话框

    android 如何监听返回键点击事件,并创建一个退出对话框, 防止自己写的应用程序不小心点击退出键而直接退出.自己记录下这个简单的demo,备用. public class BackKeyTest ...

  3. [转]Android 如何监听返回键,弹出一个退出对话框

    本文转自:http://blog.csdn.net/sunnyfans/article/details/8094349 Android 如何监听返回键点击事件,并创建一个退出对话框, 防止自己写的应用 ...

  4. android应用程序监听SMS Intent广播

    当设备接收到一条新的SMS消息时,就会广播一个包含了android.provider.Telephony.SMS_RECEIVED动作的Intent. 对于应用程序监听SMS Intent广播,首先需 ...

  5. Android onKeyDown监听返回键无效

    当我们的Activity继承了TabActivity,在该类中重写onKeyDown是监听不到返回键的, 具体解决方法如下: 重写dispatchKeyEvent /** * 退出 */ @Overr ...

  6. Android如何监听蓝牙耳机的按键事件

    写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「Bluedio + 红米手机」. 1.蓝牙耳机的 ...

  7. Android如何监听蓝牙耳机的按键事件(转)

    源: Android如何监听蓝牙耳机的按键事件 写在前面: 直接想要代码很简单,你直接把滚动条拉到最底端就可以看到.如果想要十分地了解为什么,那就按照我规划的一步一步来理解.以下测试环境以手头上有的「 ...

  8. Android怎样监听蓝牙耳机的按键事件

    Android怎样监听蓝牙耳机的按键事件 写在前面: 直接想要代码非常easy,你直接把滚动栏拉到最底端就能够看到.假设想要十分地了解为什么,那就依照我规划的一步一步来理解.下面測试环境以手头上有的「 ...

  9. Android 如何监听输入法关闭事件

    假设有如下界面(输入法的上面的输入区域是用Dialog实现的) 要求当输入法关闭的时候,Dialog也一起关闭,这样用户就不需要返回两次了. 网上找了很多资料都没有很好的解决这个问题,输入法是第三方程 ...

随机推荐

  1. Java IO的简单示例

    File类示例 public class FileUsageTest { private static void usage() { System.err.println("Usage: F ...

  2. 【BZOJ】【2946】【POI2000】公共串

    后缀数组 好感动,复习了下后缀数组居然写出来了……(感谢ykz大神) 求最长公共子串……WA了一发是因为:[不同字符串之间要用不同的特殊字符隔开]否则就会匹配到相同→_→比如都是aaa结尾,如果用相同 ...

  3. How To Open An URL In Android’s Web Browser

    How To Open An URL In Android’s Web Browser 以下核心代码片断,将展现使用“android.content.Intent” 打开一个指定的 URL. butt ...

  4. Valid Parentheses leetcode java

    题目: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the ...

  5. c#逐行分元素读取记事本txt数据写进数据库

    其实这里最关键的一个方法是 StreamReader类里的 ReadLine();这个方法可以逐行读取txt流里面的数据.写了个简单的demo,已经加上了详细的注释说明.   ok,好了,不废话,下面 ...

  6. ECMAScript5之Object学习笔记(二)

    继续第二部分 Object.freeze(obj) 看字面意思就是“把一个对象冻结”. 下面我们来看个简单的例子以作说明: // a person instance var person = { na ...

  7. 【Javascript Demo】防止按钮在短时间内被多次点击

    如果一个按钮可以在短时间内多次点击,那么有可能会被用户恶意点击,为防止这种情况,可以设定一定时间内只能点击一次,其他时间禁止点击按钮. 1.效果如下:     2.代码如下:   <div> ...

  8. Linux清理磁盘空间

    1.首先确定是否是磁盘满了 命令:   df -h 参数说明: -a:列出所有的文件系统,包括系统特有的/proc等文件系统 -k:以KB的容量显示各文件系统 -m:以MB的容量显示各文件系统 -h: ...

  9. 转:Python模块学习 ---- httplib HTTP协议客户端实现

    httplib 是 python中http 协议的客户端实现,可以使用该模块来与 HTTP 服务器进行交互.httplib的内容不是很多,也比较简单.以下是一个非常简单的例子,使用httplib获取g ...

  10. 修改MySQL数据文件的位置

    1:查看MySQL服务名称 2:管理员启动控制台 3:修改配置文件my.ini中数据文件的位置,[注]修改完成之后要把响应的数据文件从旧目录拷贝到新目录当中. 4:重新启动服务 5:登录数据库查看数据 ...