滕州本地网站建设,上海住房和城乡建设网站,查网站备案信息,大城县建设局网站Android 解决监听home键的几种方法前言#xff1a;以下两种方法可以完美解决监听back键#xff0c;home键#xff0c;多任务键(最近任务键)。一、使用注册广播监听home键、多任务键演示图创建一个广播代码如下#xff1a;class InnerRecevier extends BroadcastReceiver {f…Android 解决监听home键的几种方法前言以下两种方法可以完美解决监听back键home键多任务键(最近任务键)。一、使用注册广播监听home键、多任务键演示图创建一个广播代码如下class InnerRecevier extends BroadcastReceiver {final String SYSTEM_DIALOG_REASON_KEY reason;final String SYSTEM_DIALOG_REASON_RECENT_APPS recentapps;final String SYSTEM_DIALOG_REASON_HOME_KEY homekey;Overridepublic void onReceive(Context context, Intent intent) {String action intent.getAction();if (Intent.ACTION_CLOSE_SYSTEM_DIALOGS.equals(action)) {String reason intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);if (reason ! null) {if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {Toast.makeText(MainActivity.this, Home键被监听, Toast.LENGTH_SHORT).show();} else if (reason.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {Toast.makeText(MainActivity.this, 多任务键被监听, Toast.LENGTH_SHORT).show();}}}}}在Activity中的onCreate()方法中注册广播代码如下Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//创建广播InnerRecevier innerReceiver new InnerRecevier();//动态注册广播IntentFilter intentFilter new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);//启动广播registerReceiver(innerReceiver, intentFilter);}这样的话就ok了。这种方式能对home键与多任务键实现全盘监听但你无法去屏蔽系统的行为。二、重写onKeyDown()监听、屏蔽back键、home键在Activity中重写onKeyDown()代码如下Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode KeyEvent.KEYCODE_BACK) {Toast.makeText(MainActivity.this, 返回键无效, Toast.LENGTH_SHORT).show();return true;//return true;拦截事件传递,从而屏蔽back键。}if (KeyEvent.KEYCODE_HOME keyCode) {Toast.makeText(getApplicationContext(), HOME 键已被禁用..., Toast.LENGTH_SHORT).show();return true;//同理}return super.onKeyDown(keyCode, event);}在Activity中onCreate()中添加代码代码如下Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//在setContentView之前添加,未添加的话home键监听无效设置窗体属性this.getWindow().setFlags(0x80000000, 0x80000000);setContentView(R.layout.activity_main);}感谢阅读希望能帮助到大家谢谢大家对本站的支持