安卓中对Home键的监听(通过广播的方法)

导读:本篇文章讲解 安卓中对Home键的监听(通过广播的方法),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    大家可能都知道对于安卓程序中的Back键的监听通过onKeyDown的方法就可以得到监听了,但是对于Home键可能也想通过这样的方式,但是经过实践后,就可以发现,这样的方法是行不通的。因为Home键是系统级别的,而和Back级别不一样,所以,如果想要监听Home那么就必须想到其他的方法了。。

    下面就介绍一个简单的Home键的监听方法吧!!

      贴一下代码:

      

/*
      home键监听,则退出应用
 	*/
	private void registerHomeKey() {
		if (mHomeKeyEventReceiver == null) {
			mHomeKeyEventReceiver = new BroadcastReceiver() {
				String SYSTEM_REASON = "reason";
				String SYSTEM_HOME_KEY = "homekey";
				String SYSTEM_HOME_KEY_LONG = "recentapps";
				@Override
				public void onReceive(Context context, Intent intent) {
					String action = intent.getAction();
					if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
						String reason = intent.getStringExtra(SYSTEM_REASON);
						if (TextUtils.equals(reason, SYSTEM_HOME_KEY)) {
							finish();
						} else if (TextUtils.equals(reason,
								SYSTEM_HOME_KEY_LONG)) {
							// 表示长按home键,显示最近使用的程序列表
						}
					}

				}
			};
			registerReceiver(mHomeKeyEventReceiver, new IntentFilter(
					Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
		}

       我想大家一看应该就能明白了,这上面显示的就是一个广播的方法。。这方法简单的原因在于,这样写的话,很方便就可以调用这个方法,而不需要去XML中去注册广播的信息,比一般继承广播类的方法简单很多。但是别忘记了,通过继承的方法是最好也是最清晰的,所以建议的话还是通过将广播单独写到一个类的方法会比较好。

      对于上面的监听方法,如果你想实现监听Home键,那么将这个方法一般在onCreate()方法中进行调用就可以了,从而实现注册广播的方法。

   贴一下销毁广播的方法的代码块:

   

if(mHomeKeyEventReceiver!=null)
		{
			unregisterReceiver(mHomeKeyEventReceiver);
			mHomeKeyEventReceiver = null;
		}

    这方法很简单,不需要过多的解释了。。。。这代码块一般放在 onDestroy()方法里面就好了,这样实现功能的同时,又能将资源进行释放回收还是不错的。

  

 上面就是对Home键简单监听的广播方法了,当然还有很多实现的方法,但是建议最好用广播来进行实现。好了,欢迎大家的共同学习。。

  

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/12459.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!