<转>android 模拟回退键

http://blog.csdn.net/winson_jason/article/details/9125019



我在界面上写了一个按钮,点击back按钮以后finish()当前的界面

今天测试出一个BUG,如果有edittext,如在弹出软键盘的时候,

按back按钮,当前的界面会关闭,但是软键盘会依然存在。体验比较差

所以让back模拟回退键是一种方案。





主要是在使用Fragment时能够返回前一级,所以才找到了这些资料。

有两种方式可以实现,直接上代码

方法1:

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();
 }



注意该方法不能放在主线程中,否则会报错。

 

方法2:

try{
   Runtime runtime=Runtime.getRuntime();
   runtime.exec("input keyevent " + KeyEvent.KEYCODE_BACK);
  }catch(IOException e){
    Log.e("Exception when doBack", e.toString());
  }



 

总结:方法1比方法2响应快些


原帖地址:http://blog.csdn.net/winson_jason/article/details/9125019

你可能感兴趣的:(<转>android 模拟回退键)