博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android程序监听home键与电源键
阅读量:6276 次
发布时间:2019-06-22

本文共 1731 字,大约阅读时间需要 5 分钟。

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 }

转载地址:http://ufgpa.baihongyu.com/

你可能感兴趣的文章
java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
查看>>
《从零开始学Swift》学习笔记(Day 51)——扩展构造函数
查看>>
python多线程队列安全
查看>>
[汇编语言学习笔记][第四章第一个程序的编写]
查看>>
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
26.Azure备份服务器(下)
查看>>
mybatis学习
查看>>
LCD的接口类型详解
查看>>
Spring Boot Unregistering JMX-exposed beans on shutdown
查看>>
poi 导入导出的api说明(大全)
查看>>
Mono for Android 优势与劣势
查看>>