安卓返回键监听:退出程序
2016-11-03 14:58
239 查看
一、指定页面情况下退出程序:
二、任意页面退出程序:
1.创建公共方法:
2.创建BaseActivity,在onCreate()方法和onDestroy()方法中进行如下设置:
3.在退出程序页面,监听返回键,调用AppExit()方法
private long exitTime=0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) { //System.currentTimeMillis()无论何时调用,肯定大于2000 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); }
二、任意页面退出程序:
1.创建公共方法:
// 添加Activity到栈 public void addActivity(Activity activity) { if (activityStack == null) { activityStack = new Stack<Activity>(); } activityStack.add(activity); } // 获取当前Activity(栈中最后一个添加的) public Activity getCurrentActivity() { Activity activity = activityStack.lastElement(); return activity; } //结束栈中最后一个压入的Activity public void finishActivity() { Activity activity = activityStack.lastElement(); finishActivity(activity); } // 结束指定类名的Activity public void finishActivity(Class<?> cls) { for (Activity activity : activityStack) { if (activity.getClass().equals(cls)) { finishActivity(activity); } } } // 结束栈中指定的Activity public void finishActivity(Activity activity) { if (activity != null) { activityStack.remove(activity); activity.finish(); activity = null; } } // 结束所有Activity public void finishAllActivity() { for (int i = 0, size = activityStack.size(); i < size; i++) { if (null != activityStack.get(i)) { activityStack.get(i).finish(); } } activityStack.clear(); System.exit(0); } // 退出应用程序 public void AppExit() { try { finishAllActivity(); } catch (Exception e) { } }
2.创建BaseActivity,在onCreate()方法和onDestroy()方法中进行如下设置:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //添加Activity到堆栈 Utils.addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); //结束Activity&从栈中移除该Activity Utils.finishActivity(this); }
3.在退出程序页面,监听返回键,调用AppExit()方法
相关文章推荐
- 安卓开发之双击返回键退出程序
- 安卓实现摁两次返回键退出程序
- Unity 3D 监听键盘 返回键退出程序C#
- 安卓学习笔记---Fragment 里面加webview 监听onback事件(WebView的返回以及整个退出事件)
- 监听返回按钮,点击两下才退出程序
- Android 监听返回键退出程序的两种实现
- 安卓开发中监听手机返回键,让点击2次退出
- 安卓按两次返回键退出程序
- Unity 监听键盘 返回键退出程序
- 开源中国安卓客户端源码学习(三) 按两次返回键退出程序
- 安卓实现点击两次返回后退出程序
- 安卓---连续点击两次返回键退出程序---二级界面的退出程序
- 安卓 点击两次返回键退出程序 两种方法(新手笔记-3)
- 防止用户误操作返回键导致程序退出,监听back键的状态做统一处理
- 安卓按两次返回退出程序
- vs xamarin android 监听返回键退出程序
- 监听返回键、点击两次退出程序
- 安卓:实现返回键“再按一次退出程序”
- Android监听物理键盘的返回键Back,再按一次退出 4000 程序
- 主界面监听返回键,退出程序