您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關在Android項目中怎么監聽home鍵,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
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"; @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鍵被監聽", Toast.LENGTH_SHORT).show(); } else if (reason.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) { Toast.makeText(MainActivity.this, "多任務鍵被監聽", Toast.LENGTH_SHORT).show(); } } } } }
在Activity中的onCreate()方法中注冊廣播,代碼如下:
@Override protected 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(),代碼如下:
@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鍵監聽無效,設置窗體屬性 this.getWindow().setFlags(0x80000000, 0x80000000); setContentView(R.layout.activity_main); }
上述就是小編為大家分享的在Android項目中怎么監聽home鍵了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。