监听Home和Back物理按键的学习总结
写一些功能需要监听手机上的Home键和Back键,鉴于本人是小白,就靠度娘呗。不过学习的过程最总要嘛!~
- 首先要明白Home键和Back键在什么时候去调用什么方法
1.先从简单一些的Back键入手吧
Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Destroy()方法来销毁当前Activity,当此Activity又被其它Activity启动起来的时候,会重新调用OnCreate()方法进行创建,当栈中所有Activity都弹出结束后,应用也就随之结束了.如果说程序中存在service之类的,则可以在恰当的位置监听处理下也就可以了.
Back键就是后退到上一层的,生命周期的流程是:
onPause->onStop->onDestroy->onCreate->onStart->onResume
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode==KeyEvent.KEYCODE_BACK) {
return true;
}
return false;
}
这样手机的Back键就给屏蔽了,把这段代码放在你所需要的页面当中就行了
- 但是Home键不是那么好屏蔽的,所以我们要想想其他的办法去解决这个问题
Android程序的隐藏,当你按下手机的Home键的时候,系统会默认调用程序栈中最上层Activity的stop()方法,然后整个应用程序都会被隐藏起来,当你再次点击手机桌面上应用程序图标时,系统会调用最上层Activity的OnResume()方法,此时不会重新打开程序,而是直接进入,会直接显示程序栈中最上层的Activity.(也不想去底层搞,太烦)
(用了许多的有关闹钟的app后,发现有个好的方法去避免home键。毕竟Home键只是调用stop()的方法,如果按下Home键之后不去管它了。去用别的应用的,这时我们应该去怎么处理呢?)
我们去用了别的应用,那就肯定要占内存啊。内存不够肯定要把其他的程序给干掉~~~那么我们的应用在stop中肯定会被干掉了。。。
对于闹钟,还有一个“贪睡模式”!可以往后延迟几分钟的。所以,在用户按下Home键之后。用户不去点击删除,不把数据库的删除,那就还有那条数据,就可以设置为几分钟之后再次响铃。除非用户双清了,那也没办法,只能等再次进入的时候,显示已经过期的闹钟了。
所以,至此我的Home键还是没有去处理。哈哈哈,没办法。我是渣渣。
欢迎大神告诉我怎么去处理~~