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

相关推荐
_李小白17 小时前
【Android FrameWork】延伸阅读:SurfaceFlinger线程
android
csdn122598733617 小时前
JetPack Compose 入门先搞清楚
android·compose·jetpack
liang_jy18 小时前
Android LaunchMode
android·面试
阿里云云原生19 小时前
Android App 崩溃排查实战:如何利用 RUM 完整数据与符号化技术定位问题?
android·阿里云·云原生·rum
过期动态19 小时前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
没有了遇见1 天前
Android 音乐播放器之MotionLayout实现View流畅变换
android
TheNextByte11 天前
在 PC 和Android之间同步音乐的 4 种方法
android
君莫啸ོ1 天前
Android基础-Activity属性 android:configChanges
android
TimeFine1 天前
Android AI解放生产力(七):更丰富的AI运用前瞻
android
保持低旋律节奏1 天前
linux——进程状态
android·linux·php