Android监听home键的方法
发布日期:2021-11-12 07:57:10 浏览次数:29 分类:技术文章

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

原文地址:http://www.jb51.net/article/79513.htm

如果你的Activity具备这些属性

当系统点击Home按键的时候,系统会向具有这些属性的Activity发出intent

然后你重写Activity的onNewIntent方法

这个方法就会回调onNewIntent这个方法

已验证可用!

下面这个是我重新写的监听home键的方式,以前写的那些方式都不是很好用。现在的这种方式通过广播的方式监听home键,这个比较好使

1.首先是创建一个广播接受者

private BroadcastReceiver mHomeKeyEventReceiver = new BroadcastReceiver() {  String SYSTEM_REASON = "reason";  String SYSTEM_HOME_KEY = "homekey";  String SYSTEM_HOME_KEY_LONG = "recentapps";  @Override  public void onReceive(Context context, Intent intent) {   String action = intent.getAction();   if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {    String reason = intent.getStringExtra(SYSTEM_REASON);    if (TextUtils.equals(reason, SYSTEM_HOME_KEY)) {      //表示按了home键,程序到了后台     Toast.makeText(getApplicationContext(), "home", 1).show();    }else if(TextUtils.equals(reason, SYSTEM_HOME_KEY_LONG)){     //表示长按home键,显示最近使用的程序列表    }   }  }};

2.注册监听

可以在Activity里注册,也可以在Service里面

//注册广播registerReceiver(mHomeKeyEventReceiver, new IntentFilter(  Intent.ACTION_CLOSE_SYSTEM_DIALOGS));

完整的代码如下:

package com.example.homedemo;import android.os.Bundle;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.text.TextUtils;import android.view.Menu;import android.widget.Toast;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  //注册广播  registerReceiver(mHomeKeyEventReceiver, new IntentFilter(    Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); } /**  * 监听是否点击了home键将客户端推到后台  */ private BroadcastReceiver mHomeKeyEventReceiver = new BroadcastReceiver() {  String SYSTEM_REASON = "reason";  String SYSTEM_HOME_KEY = "homekey";  String SYSTEM_HOME_KEY_LONG = "recentapps";  @Override  public void onReceive(Context context, Intent intent) {   String action = intent.getAction();   if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {    String reason = intent.getStringExtra(SYSTEM_REASON);    if (TextUtils.equals(reason, SYSTEM_HOME_KEY)) {      //表示按了home键,程序到了后台     Toast.makeText(getApplicationContext(), "home", 1).show();    }else if(TextUtils.equals(reason, SYSTEM_HOME_KEY_LONG)){     //表示长按home键,显示最近使用的程序列表    }   }  } };}

转载地址:https://blog.csdn.net/happy_love1990/article/details/69487801 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JAVA 的data类型 long类型 生成星期几汇总
下一篇:Android用户引导页实现,圆点实现动画效果

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月04日 14时26分33秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

大疆机甲大师Python API之七:做个闹钟 2019-04-26
【意外走向】大疆机甲大师Python API之八:计时——为性能测试展开1000次循环 2019-04-26
RFC#2457——Rust 语言支持非 ASCII 码标识符在 GitHub 引发的激辩(一) 2019-04-26
RFC#2457——Rust 语言选择支持非 ASCII 码标识符在 GitHub 引发的激辩(二) 2019-04-26
”为什么有这么多人执着于中文编程?”回答两千赞留念及回应 2019-04-26
【家务】盘点小孩玩具零件缺失情况 2019-04-26
开发中文 API 的一些策略 2019-04-26
从日本编程书籍《我的第一本编程书》中译版看中文例程如何扬长避短——标识符(一) 2019-04-26
中文命名标识符如何区分类型和变量 2019-04-26
编程术语成系统中文化的意义 2019-04-26
草蟒 Python 中文 API 与 IDE 支持尝鲜 2019-04-26
一种改进中文 API 可读性的方法:参数不限于在末尾 2019-04-26
中文编程开发工具的生存模式探讨 2019-04-26
写给木兰编程语言研发团队的公开信 2019-04-26
为什么要急着为「木兰」编程语言贴上“造假”的标签? 2019-04-26
编程语言国产化的关键一战——对肆意污名化“木兰”编程语言说“不” 2019-04-26
各大媒体对「木兰」编程语言的不当言论盘点 2019-04-26
戳破针对「木兰」编程语言的拙劣谣言 2019-04-26
为「木兰」编程语言添加对中文命名标识符的支持 2019-04-26
悬赏万元,重现「木兰」编程语言编译器 2019-04-26