Android 双击返回键退出程序的方法总结
程序员文章站
2023-12-10 20:06:22
android 双击返回键退出程序的方法总结
下面先说说lz思路,具体如下:
1. 第一种就是根据用户点击俩次的时间间隔去判断是否退出程序;
2. 第二种...
android 双击返回键退出程序的方法总结
下面先说说lz思路,具体如下:
1. 第一种就是根据用户点击俩次的时间间隔去判断是否退出程序;
2. 第二种就是使用android中计时器(timer),其实这俩种都差不多.
思路是有了,,,接下来要怎么开搞呢???用户点击肯定会触发相应的事件,,,我们先来看下面俩个事件的作用。。。
activity.onkeydown();
当某个键被按下时会触发,但不会被任何的该activity内的任何view处理。
默认按下keycode_back键后会回到上一个activity。
activity.onkeyup():
当某个按键被按下,松开后触发,但不会被任何的该activity内的任何view处理。
默认没有执行任何操作,只是简单的给一个false作为返回值。
so,,,接下来分别使用如上俩个方法干掉这个当年的拦路虎~
one way:onkeyup()
//--------------使用onkeyup()干掉他-------------- //记录用户首次点击返回键的时间 private long firsttime=0; @override public boolean onkeyup(int keycode, keyevent event) { switch (keycode){ case keyevent.keycode_back: long secondtime=system.currenttimemillis(); if(secondtime-firsttime>2000){ toast.maketext(mainactivity.this,"再按一次退出程序--->onkeyup",toast.length_short).show(); firsttime=secondtime; return true; }else{ system.exit(0); } break; } return super.onkeyup(keycode, event); }
two way:onkeydown()
//--------------使用onkeydown()干掉他-------------- //记录用户首次点击返回键的时间 private long firsttime=0; @override public boolean onkeydown(int keycode, keyevent event) { if(keycode==keyevent.keycode_back && event.getaction()==keyevent.action_down){ if (system.currenttimemillis()-firsttime>2000){ toast.maketext(mainactivity.this,"再按一次退出程序--->onkeydown",toast.length_short).show(); firsttime=system.currenttimemillis(); }else{ finish(); system.exit(0); } return true; } return super.onkeydown(keycode, event); }
three way:timer
@override public boolean onkeydown(int keycode, keyevent event) { if(keycode==keyevent.keycode_back){ exitbydoubleclick(); } return false; } private void exitbydoubleclick() { timer texit=null; if(!isexit){ isexit=true; toast.maketext(mainactivity.this,"再按一次退出程序--->timer",toast.length_short).show(); texit=new timer(); texit.schedule(new timertask() { @override public void run() { isexit=false;//取消退出 } },2000);// 如果2秒钟内没有按下返回键,则启动定时器取消掉刚才执行的任务 }else{ finish(); system.exit(0); } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!