Android学习心得② - fragment中设置双击返回键退出程序
2015-04-14 14:28
399 查看
最近做的软件要实现双击返回键退出程序效果,其实一开始我是拒绝的,你不能让我改,我就马上去改,因为我不愿意改完了以后再加一些特技上去,代码“duang”一下,很快、很屌,这样用户出来一定会骂我,根本没有这样的软件,就证明上面那个是假的。后来我也经过证实他们确实是实用的,我改了大概一个小时左右,感觉还不错,后来我在用的时候也要求他们不要加特技,因为我要让用户看到,我用完之后是这个样子,你们用完之后也会是这个样子!
好啦不玩啦,下面正经点
然后捏我就上网搜啊搜啊,发现了Android中的“再按一次返回键退出程序”实现 的代码很好用, 下面贴出来
通过覆盖onKeyDown方法
不过呢,有一个问题。。这是基于Activity的方法,而我的程序主要是基于fragment的,activity只是个托管。。。所以这个方法不适用啊
于是我又各种查资料啊查资料啊希望能发现fragment中如何覆盖onKeyDown方法啊,后来都想到了要去进行fragment和activity的数据传递,幸亏我太懒了,觉得太麻烦,继续查资料,首先是看了Overflow上的Fragment activity catch onKeyDown and use in fragment,写进我的代码里,但是还是有各种异常。。然后继续查资料,最终找了解决办法:
友情提供 fragment监听返回键
修改了一下上面文章的代码,就可以点击两次返回键退出程序啦~
“duang”的一下,软件就完成啦!( 请体谅我这个有病(精神病)之人(>_<))
好啦不玩啦,下面正经点
然后捏我就上网搜啊搜啊,发现了Android中的“再按一次返回键退出程序”实现 的代码很好用, 下面贴出来
private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-exitTime) > 2000){ Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { finish(); System.exit(0); } return true; } return super.onKeyDown(keyCode, event); }
通过覆盖onKeyDown方法
不过呢,有一个问题。。这是基于Activity的方法,而我的程序主要是基于fragment的,activity只是个托管。。。所以这个方法不适用啊
于是我又各种查资料啊查资料啊希望能发现fragment中如何覆盖onKeyDown方法啊,后来都想到了要去进行fragment和activity的数据传递,幸亏我太懒了,觉得太麻烦,继续查资料,首先是看了Overflow上的Fragment activity catch onKeyDown and use in fragment,写进我的代码里,但是还是有各种异常。。然后继续查资料,最终找了解决办法:
友情提供 fragment监听返回键
修改了一下上面文章的代码,就可以点击两次返回键退出程序啦~
private View.OnKeyListener backListener = new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { // ToDo if ((System.currentTimeMillis() - exitTime) > 2000) { Toast.makeText(getActivity(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { // 这里是我做了保存数据操作 BLEDeviceLab.get(getActivity()).saveDevices(); mEditor.putString("ip", ipAddress); mEditor.commit(); getActivity().finish(); System.exit(0); } return true; } return false; } };
“duang”的一下,软件就完成啦!( 请体谅我这个有病(精神病)之人(>_<))
相关文章推荐
- Android 双击返回键退出程序 实现
- Android双击两次返回按钮退出程序
- Android双击返回键退出程序代码
- Android -- 双击返回键退出程序
- Android 双击返回键退出程序 实现
- Android 双击返回键退出程序 实现
- Android 双击返回键退出程序 实现
- Android开发如何双击返回键退出程序
- Android开发如何双击返回键退出程序
- Android程序双击返回键(退出键)退出
- Android 返回键双击退出程序
- Android双击返回键退出程序的实现方法
- Android 双击返回键退出程序 实现
- android双击返回键退出程序
- Android应用系列:双击返回键退出程序
- Android双击返回键退出程序的实现方法
- Android双击返回键退出程序的实现方法
- android双击返回键退出程序
- android双击返回键退出程序
- android双击返回键退出程序