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

相关推荐
MonkeyKing_sunyuhua3 小时前
python线程间怎么通信
android·网络·python
芦半山4 小时前
穿越二十年:Android Native 内存泄漏检测的进化之路
android
恋猫de小郭5 小时前
Flutter 在 iOS 26 模拟器跑不起来?其实很简单
android·前端·flutter
尤老师FPGA5 小时前
使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第三十二讲)
android·java·ui
叫我龙翔6 小时前
【MySQL】从零开始了解数据库开发 --- 复合查询
android·mysql·数据库开发
Kapaseker6 小时前
Compose 中实现凸角、凹角、切角、尖角
android·kotlin
Erwinl7 小时前
android 开机启动 无线调试
android
此生只爱蛋7 小时前
mysql_store_result
android·adb
双桥wow8 小时前
Android Framework开机动画开发
android