安卓按两次返回键退出程序
2015-11-13 22:10
330 查看
很多应用程序都有按两次返回键退出程序的设置,其实很简单,这里通过广播实现。
先定义一个BaseActivity,让所有的Activity都继承自这个类,在这个类里面定义一个广播接收类,收到广播后finish(),这样的话所有的Activity都会有这个接收广播的方法,收到后都会finish结束。
在onResume()方法里面注册广播,在这个类销毁时注销广播,记得销毁,不然会一直占用系统的内存。
在你需要按两次返回键退出程序的Activity中发送广播。
记得onKeyDown()方法里面要返回true,不然按一次返回键就直接返回到上一个Activity了
先定义一个BaseActivity,让所有的Activity都继承自这个类,在这个类里面定义一个广播接收类,收到广播后finish(),这样的话所有的Activity都会有这个接收广播的方法,收到后都会finish结束。
在onResume()方法里面注册广播,在这个类销毁时注销广播,记得销毁,不然会一直占用系统的内存。
public class BaseActivity extends Activity { BroadcastReceiver finishApplicationBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub finish(); } }; protected void onResume() { super.onResume(); IntentFilter filter = new IntentFilter(); filter.addAction("com.example.gouchao"); this.registerReceiver(finishApplicationBroadcastReceiver, filter); }; @Override protected void onDestroy() { // TODO Auto-generated method stub this.unregisterReceiver(finishApplicationBroadcastReceiver); super.onDestroy(); } }
在你需要按两次返回键退出程序的Activity中发送广播。
// 连按两次退出应用 // 记录时间 private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode == KeyEvent.KEYCODE_BACK) { if (System.currentTimeMillis() - exitTime > 2000) { Toast.makeText(MainActivity.this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { exitApp(); } } return true; } //发送广播 public void exitApp() { Intent intent = new Intent(); intent.setAction("com.example.gouchao"); this.sendBroadcast(intent); }
记得onKeyDown()方法里面要返回true,不然按一次返回键就直接返回到上一个Activity了
相关文章推荐
- Yii框架的一些系统函数
- normalize()函数的使用方法
- 第2章 一切都为对象
- javaScript-变量
- android studio gradle更新错误
- Volley框架之使用GET取得Cookie
- 杭电1075 What Are You Talking About
- SQL 左外连接,右外连接,全连接,内连接
- 杭电1251
- 剑指Offer-17-合并有序链表
- 机器学习实战(三)
- MySQL各版本的区别
- call_function_single_interrupt stack checking
- java命名规则
- ShareSDK
- Android Studio -修改LogCat的颜色*美爆了*
- centos7安装有道词典(不能发音和取词)
- 关于Linux虚拟机和window之间的文件传输问题
- 配置SSH
- C++模板元编程 - 挖新坑的时候探索到了模板元编程的新玩法