最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年02月03日 08:39:18   投稿:lqh  
這篇文章主要介紹了Android 解決監(jiān)聽(tīng)home鍵的幾種方法的相關(guān)資料,需要的朋友可以參考下

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

前言:

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

一、使用注冊(cè)廣播監(jiān)聽(tīng)home鍵、多任務(wù)鍵

演示圖

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

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

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

@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  //創(chuàng)建廣播
  InnerRecevier innerReceiver = new InnerRecevier();
  //動(dòng)態(tài)注冊(cè)廣播
  IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
  //啟動(dòng)廣播
  registerReceiver(innerReceiver, intentFilter);
 }

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

二、重寫(xiě)onKeyDown()監(jiān)聽(tīng)、屏蔽back鍵、home鍵

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

@Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK) {
   Toast.makeText(MainActivity.this, "返回鍵無(wú)效", 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之前添加,未添加的話(huà)home鍵監(jiān)聽(tīng)無(wú)效,設(shè)置窗體屬性
  this.getWindow().setFlags(0x80000000, 0x80000000);
  setContentView(R.layout.activity_main);
 }

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

相關(guān)文章

最新評(píng)論

南昌市| 沙湾县| 平顶山市| 抚松县| 双桥区| 太仓市| 黄浦区| 湘潭县| 乐业县| 独山县| 高邑县| 剑河县| 米林县| 邢台县| 江油市| 古蔺县| 延寿县| 富锦市| 康保县| 临高县| 安化县| 博白县| 东兰县| 修武县| 南安市| 班戈县| 潜山县| 工布江达县| 太仆寺旗| 天气| 海丰县| 衡山县| 怀来县| 光泽县| 浏阳市| 迁西县| 栾川县| 板桥市| 仁化县| 东方市| 德保县|