Android 连续按两次back键退出系统

时间:2021-03-20 10:29:10

需求:在程序的首页,连续按两次back键退出Androd程序。

第一步:新建一个GApplication类继承Application,在GApplication中添加一个用于存放Activity的集合属性List<Activity> activityList = new ArrayList<Activity>();,将GApplication在AndroidManifest.xml进行注册。

第二步:在你程序中自定义的每一个Activity中的onCreate方法中,将Activity本身赋值为activityList

例如:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.share_layout);
Gapplication.getInstance().activityList.add(this); }

第三部:此步是最重要的异步,上面两步是为他做铺垫的。代码如下:

/*连续单击两次back键退出系统*/
private long exitTime;
/*联系单击两次退出系统*/
@Override
public void onBackPressed() {
// super.onBackPressed();
if((System.currentTimeMillis()-exitTime) > 2000){
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
if(Gapplication.getInstance().activityList.size() > 0){
for(int i=0;i<Gapplication.getInstance().activityList.size();i++){
if(Gapplication.getInstance().activityList.get(i) != null){
Gapplication.getInstance().activityList.get(i).finish();
} }
}
System.exit(0);
}
}

希望对大家有所帮助。

随机推荐

  1. 《超实用的JavaScript代码段》—— 读后总结

    这本书全是代码,从头到尾跟着坐下来确实收获很多.比那些古板的教科书式的理解更多,不过书中并不是每个例子都做了,有的作者封装的太多,觉得看了收获不多,就没细看——比如模块渐变.有空好好学学这段的代码. ...

  2. Bootstrap响应式栅格系统的设计原理

    1.历史背景 Bootstrap是Twitter的工程师Mark Otto和Jacob Thornton开发的一套供内部使用的UI框架,于2011年开源.2012年发布的第二版中新增了12列栅格系统和 ...

  3. Cas 介绍及使用

    CAS(Central Authentication Service)是Yale大学发起的一个企业级的.开源的项目,旨在为web应用系统提供一种可靠的单点登录解决方法(属于 web sso). 主要特 ...

  4. Async&sol;Await FAQ

    From time to time, I receive questions from developers which highlight either a need for more inform ...

  5. artdialog4&period;1&period;7 中父页面给子页面传值

    artdialog4.1.7中父页面给子页面传值时看了一些网友的解决方法: 在父页面声明全局变量 var returnValue=“ ”,子页面用art.dialog.opener.returnVal ...

  6. iOS、mac开源项目及库汇总

    原文地址:http://blog.csdn.net/qq_26359763/article/details/51076499    iOS每日一记------------之 中级完美大整理 iOS.m ...

  7. Mysql笔记4数据表操作1

    1查看表的结构 (1)show create table +数据库名称 (2)desc+数据库名称 2修改表 (1)表中添加列 alter table 数据库名称 add column addr va ...

  8. iOS 任务的依赖操作

    -(void)dependency{ /** 假设有A.B~C三个操作,要求: 1. 3个操作都异步执行 2. 操作C依赖于操作B 3. 操作B依赖于操作A */ //创建一个队列 NSOperati ...

  9. PS图层混合算法之四(亮光, 点光, 线性光, 实色混合)

    亮光模式: 根据绘图色通过增加或降低"对比度",加深或减淡颜色.如果绘图色比50%的灰亮,图像通过降低对比度被照亮,如果绘图色比50%的灰暗,图像通过增加对比度变暗. 线性光模式: ...

  10. &period;NET中结构和类的区别

    最近在学习Swift语言,看到了枚举这一章,Swift可以支持在枚举中定义方法...于是想到了回顾一下.NET中枚举.结构.类之间区别. 枚举在.NET较为简单,这里就不作比较,只谈谈结构和类. 1. ...