實現Back鍵功能方法有:
一:重寫onBackPressed方法
二:使用測試框架Instrumentation,模擬任意鍵按下動作,注意的是該方法不能在主線程中使用,只能開啟新線程,帶來的問題就是反應速度較慢,項目中不建議使用。
調用onBack()方法;產生back鍵單擊效果
public void onBack(){ new Thread(){ public void run() { try{ Instrumentation inst = new Instrumentation(); inst.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK); } catch (Exception e) { Log.e("Exception when onBack", e.toString()); } } }.start(); }
三:此方法是網絡上搜集的,沒有代碼驗證。
try{ Runtime runtime=Runtime.getRuntime(); runtime.exec("input keyevent " + KeyEvent.KEYCODE_BACK); }catch(IOException e){ Log.e("Exception when doBack", e.toString()); }
四:重寫dispatchKeyEvent
@Override public boolean dispatchKeyEvent(KeyEvent event) { // TODO Auto-generated method stub if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_BACK) { //do something what you want return true;//返回true,把事件消費掉,不會繼續調用onBackPressed } return super.dispatchKeyEvent(event); }
五:這個方法算不上是完全意義的Back鍵的功能了,此方法只能關閉當前的 Activity ,也就是對于一個只有單個 Activity 的應用程序有效,如果對于有多外 Activity 的應用程序它就無能為力了。
使用此方法需要追加權限:<uses-permission android:name="android.permission.RESTART_PACKAGES" />
新聞熱點
疑難解答
圖片精選