`
malong26
  • 浏览: 167086 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中3种方法实现back键动作

 
阅读更多
方法一:重写onBackPressed方法
@Override
	public void onBackPressed() {
		// do something what you want
		super.onBackPressed();
	}


方法二:重写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);
	}

方法三:使用测试框架Instrumentation,模拟任意键按下动作,注意的是该方法不能在主线程中使用,只能开启新线程,带来的问题就是反应速度较慢,项目中不建议使用。
调用actionKey(KeyEvent.KEYCODE_BACK);产生back键单击效果
/**
 * 模拟键盘事件方法
 * @param keyCode
*/
public void actionKey(final int keyCode) {
	 new Thread () {  
	            public void run () {  
	                try {  
	                     Instrumentation inst=new Instrumentation();  
	                     inst.sendKeyDownUpSync(keyCode);
	                } catch(Exception e) {  
	                    e.printStackTrace();	                }  
	            }  
	        }.start();  
	    }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics