Android 通过广播监听home键和任务键

通过继承BroadcastReceiver来判断触发的按键,代码如下

java 复制代码
public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    private MyBroadcastReceiver receiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        receiver = new MyBroadcastReceiver();
        IntentFilter filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
        registerReceiver(receiver, filter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(receiver);
    }

    class MyBroadcastReceiver extends BroadcastReceiver {

        private static final String KEY_HOME = "homekey";
        private static final String KEY_RECENT = "recentapps";

        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent != null) {
                String reason = intent.getStringExtra("reason");
                if (KEY_HOME.equals(reason)) {
                    Log.i(TAG, "home键触发");
                }
                if (KEY_RECENT.equals(reason)) {
                    Log.i(TAG, "任务键触发");
                }
            }
        }
    }
}

运行代码后,点击home和任务键,可以看到日志打印如下

相关推荐
不爱说话郭德纲22 分钟前
告别漫长的HbuilderX云打包排队!uni-app x 安卓本地打包保姆级教程(附白屏、包体积过大排坑指南)
android·前端·uni-app
Sinclair5 小时前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
雮尘8 小时前
手把手带你玩转Android gRPC:一篇搞定原理、配置与客户端开发
android·前端·grpc
ktl9 小时前
Android 编译加速/优化 80%:一个文件搞定,零侵入零配置
android
alexhilton20 小时前
使用FunctionGemma进行设备端函数调用
android·kotlin·android jetpack
冬奇Lab1 天前
InputManagerService:输入事件分发与ANR机制
android·源码阅读
张小潇1 天前
AOSP15 Input专题InputManager源码分析
android·操作系统
RdoZam1 天前
Android-封装基类Activity\Fragment,从0到1记录
android·kotlin
奥陌陌1 天前
android 打印函数调用堆栈
android
用户985120035831 天前
Compose Navigation 3 深度解析(二):基础用法
android·android jetpack