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和任务键,可以看到日志打印如下

相关推荐
秋91 小时前
MySQL 9.7.0 使用详解:新特性、实战与避坑指南
android·数据库·mysql
狼与自由1 小时前
clickhouse ReplacingMergeTree
android·clickhouse
吉吉612 小时前
php反序列化基础知识前奏
android·php·反序列化
努力努力再努力wz2 小时前
【MySQL进阶系列】拒绝冗余SQL:带你透彻理解视图的底层逻辑
android·c语言·数据结构·数据库·c++·sql·mysql
常利兵2 小时前
安卓黑科技:实现多平台商品详情页一键跳转APP
android·科技
_李小白3 小时前
【android opencv学习笔记】Day 5: 高效的图像扫描
android·opencv·学习
liang_jy11 小时前
Android 窗口容器树(一)—— 窗口和窗口容器树
android·源码
HUGu RGIN11 小时前
MySQL--》如何在MySQL中打造高效优化索引
android·mysql·adb
Joseph Cooper14 小时前
Linux/Android 跟踪技术:ftrace、TRACE_EVENT、atrace、systrace 与 perfetto 入门
android·linux·运维
空中海14 小时前
安卓逆向03. 动态调试、抓包分析与 Frida Hook
android