欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

前言:

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

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

演示圖

創(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, "多任務(wù)鍵被監(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鍵與多任務(wù)鍵實現(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)聽無效,設(shè)置窗體屬性
  this.getWindow().setFlags(0x80000000, 0x80000000);
  setContentView(R.layout.activity_main);
 }

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

相關(guān)文章

  • Android Studio使用教程(五):Gradle命令詳解和導(dǎo)入第三方包

    Android Studio使用教程(五):Gradle命令詳解和導(dǎo)入第三方包

    這篇文章主要介紹了Android Studio使用教程(五):Gradle命令詳解和導(dǎo)入第三方包,本文講解了導(dǎo)入Android Studio、Gradle常用命令等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Android系統(tǒng)添加自己寫的工具

    Android系統(tǒng)添加自己寫的工具

    今天小編就為大家分享一篇關(guān)于Android系統(tǒng)添加自己寫的工具的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Android實現(xiàn)APP秒表功能

    Android實現(xiàn)APP秒表功能

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)APP秒表功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Android四大組件:Activity/Service/Broadcast/ContentProvider作用示例

    Android四大組件:Activity/Service/Broadcast/ContentProvider作用示例

    Android是一種基于Linux,自由及開放源代碼的操作系統(tǒng),Android分為四個層,從高層到底層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運行庫層和Linux內(nèi)核層,Android有四大基本組件:Activity、Service服務(wù)、BroadcastReceiver廣播接收器、Content Provider內(nèi)容提供者
    2023-11-11
  • Android基于繪制緩沖實現(xiàn)煙花效果

    Android基于繪制緩沖實現(xiàn)煙花效果

    這篇文章主要介紹了Android基于繪制緩沖實現(xiàn)煙花效果,文中通過代碼示例和圖文結(jié)合介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,感興趣的同學(xué)可以自己動手嘗試一下
    2024-03-03
  • ListView實現(xiàn)下拉刷新加載更多的實例代碼(直接拿來用)

    ListView實現(xiàn)下拉刷新加載更多的實例代碼(直接拿來用)

    這篇文章主要介紹了ListView實現(xiàn)下拉刷新加載更多的實例代碼(直接拿來用)的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • 一些有效的Android啟動優(yōu)化策略分享

    一些有效的Android啟動優(yōu)化策略分享

    在當(dāng)今激烈競爭的移動應(yīng)用市場,應(yīng)用的啟動速度直接影響著用戶的第一印象和滿意度,Android的啟動優(yōu)化是開發(fā)者必須關(guān)注的關(guān)鍵領(lǐng)域,本文將詳細(xì)介紹一些強大有效的Android啟動優(yōu)化策略,幫助你優(yōu)化應(yīng)用的啟動過程,為用戶創(chuàng)造更出色的體驗,需要的朋友可以參考下
    2023-08-08
  • Android 多個Activity之間的傳值

    Android 多個Activity之間的傳值

    本篇文章將用一個實例,詳細(xì)的為大家講解怎么注冊并激活一個新的Activity,以及多個Activity之間如何傳值
    2013-11-11
  • Fedora14下android開發(fā): eclipse與ibus確有沖突的問題分析

    Fedora14下android開發(fā): eclipse與ibus確有沖突的問題分析

    本篇文章是對Fedora14下android開發(fā),eclipse與ibus確有沖突的問題進行了分析介紹,需要的朋友參考下
    2013-05-05
  • 源碼詳解Android中View.post()用法

    源碼詳解Android中View.post()用法

    本文通過源碼給大家詳細(xì)分析了在Android中View.post()的用法以及經(jīng)常遇到的問題和解決辦法,一起來學(xué)習(xí)下。
    2017-12-12

最新評論