国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android 解決監(jiān)聽home鍵的幾種方法

2019-12-12 03:50:58
字體:
來源:轉載
供稿:網友

Android 解決監(jiān)聽home鍵的幾種方法

前言:

以下兩種方法可以完美解決監(jiān)聽back鍵,home鍵,多任務鍵(最近任務鍵)。

一、使用注冊廣播監(jiān)聽home鍵、多任務鍵

演示圖

創(chuàng)建一個廣播代碼如下:

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";  @Override  public 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鍵被監(jiān)聽", Toast.LENGTH_SHORT).show();     } else if (reason.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {      Toast.makeText(MainActivity.this, "多任務鍵被監(jiān)聽", Toast.LENGTH_SHORT).show();     }    }   }  } }

在Activity中的onCreate()方法中注冊廣播,代碼如下:

@Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  //創(chuàng)建廣播  InnerRecevier innerReceiver = new InnerRecevier();  //動態(tài)注冊廣播  IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);  //啟動廣播  registerReceiver(innerReceiver, intentFilter); }

這樣的話,就ok了。這種方式能對home鍵與多任務鍵實現(xiàn)全盤監(jiān)聽,但你無法去屏蔽系統(tǒng)的行為。

二、重寫onKeyDown()監(jiān)聽、屏蔽back鍵、home鍵

在Activity中重寫onKeyDown(),代碼如下:

@Override public 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()中添加代碼,代碼如下:

 @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  //在setContentView之前添加,未添加的話home鍵監(jiān)聽無效,設置窗體屬性  this.getWindow().setFlags(0x80000000, 0x80000000);  setContentView(R.layout.activity_main); }

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 嘉祥县| 壶关县| 彩票| 万源市| 友谊县| 会同县| 昭平县| 红桥区| 东至县| 筠连县| 临洮县| 论坛| 酒泉市| 象州县| 呼玛县| 屯留县| 阳春市| 任丘市| 阜城县| 吴川市| 兴隆县| 娄烦县| 张家港市| 闸北区| 汝阳县| 米泉市| 临沭县| 万源市| 高台县| 康保县| 桦川县| 鄂伦春自治旗| 黄龙县| 黔江区| 株洲市| 绥中县| 汕头市| 青岛市| 乐业县| 武鸣县| 上犹县|