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