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

相关推荐
aqi0025 分钟前
一文读懂 HarmonyOS 7.0 带来的十大API重要升级
android·华为·harmonyos·鸿蒙·harmony
是店小二呀1 小时前
鸿蒙PC开源移植:CodeLite原生IDE与Remote Agent适配
android·智能手机·远程桌面
终端安全笔记2 小时前
iOS 27 给了租赁一个新工具,但它只认受监督的设备
android·网络·安全·ios
爱笑鱼2 小时前
Android 系统启动机制(八):系统服务怎样从创建走到可用?SystemServiceManager 和 Boot Phase 各管什么?
android
hai_android2 小时前
Android 组件化开发实践
android·java·kotlin
mmsx3 小时前
Android 几何构造器的双栈机:链式 API 底层是怎么装配几何的
android
mmsx3 小时前
Android 地图卡成 PPT 之后:双渲染管线与空间网格渐进加载怎么救
android·app
光影少年3 小时前
setImmediate 和 setTimeout(0) 的区别
android·前端·react.js·ios·前端框架
Android-Flutter18 小时前
android compose 知识点
android·compose
其实防守也摸鱼19 小时前
Codex 下载与本地部署实战:从安装到运行全指南
android·大数据·运维·安全·自动化