Android TabActivity 返回鍵實現QQ類似的功能
阿新 • • 發佈:2019-02-10
一般Activity中監聽返回鍵,都是重寫onKeyDown(int keyCode, KeyEvent event)方法對手機按鍵進行監聽,
而當要監聽的Activity為TabActivity時(其實ListActivity也一樣),這個方法並不起作用。
下面是解決辦法:
正在開發的應用的首頁是一個TabActivity,當用戶按下返回鍵時會退出程式,想退出到後臺看home鍵,還不是銷燬。
- 常規方法像上文說的重寫onKeyDown(int keyCode, KeyEvent event),根本不起作用;
- 又發現SDK2.0以後新增了一個專門針對返回鍵的方法onBackPressed(),還是不起作用。
現有一個dispatchKeyEvent(KeyEvent event)果然管用
下面是一段示例程式碼,返回鍵 實現home鍵的功能,類似QQ的功能:
public boolean dispatchKeyEvent(KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_BACK) { Intent setIntent = new Intent(Intent.ACTION_MAIN); setIntent.addCategory(Intent.CATEGORY_HOME); setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(setIntent); } return super.dispatchKeyEvent(event); }
注意:
if判斷中要加一個event.getAction() == KeyEvent.ACTION_DOWN判斷,
因為按鍵有兩個事件ACTION_DOWN和ACTION_UP,也就是按下和鬆開,如果不加這個判斷,程式碼會執行兩遍。
<pre name="code" class="java">