点击返回键:弹出退出的对话框和双击两次返回键,退出

Android 点击返回键退出程序的方法 Android 点击返回键退出程序的方法 第一种: 再按一次返回键退出程序 privatelongexitTime=0; @Override publicbooleanonKeyDown(intkeyCode,KeyEventevent){ if(keyCode==KeyEvent.KEYCODE_BACK&&event.getAc... 阅读详情

<1>点击返回键:弹出退出的对话框

package com.zking.administrator.app2;

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if (keyCode == KeyEvent.KEYCODE_BACK )
        {
            // 创建退出对话框
            AlertDialog isExit = new AlertDialog.Builder(this).create();
            // 设置对话框标题
            isExit.setTitle("系统提示");
            // 设置对话框消息
            isExit.setMessage("确定要退出吗");
            // 添加选择按钮并注册监听
            isExit.setButton("确定", listener);
            isExit.setButton2("取消", listener);
            // 显示对话框
            isExit.show();

        }

        return false;

    }
    /**监听对话框里面的button点击事件*/
    DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener()
    {
        public void onClick(DialogInterface dialog, int which)
        {
            switch (which)
            {
                case AlertDialog.BUTTON_POSITIVE:// "确认"按钮退出程序
                    finish();
                    break;
                case AlertDialog.BUTTON_NEGATIVE:// "取消"第二个按钮取消对话框
                    break;
                default:
                    break;
            }
        }
    };
}

<2>双击两次返回键,退出

第一种实现的基本原理就是,当按下BACK键时,会被onKeyDown捕获,判断是BACK键,则执行exit方法。
在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在Handler中将此值还原成false。如果在发送消息间隔的2秒内,再次按了BACK键,则再次执行exit方法,此时isExit的值已为true,则会执行退出的方法。

package com.zking.administrator.app2;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.widget.Toast;

/**
 * Created by Administrator on 2017/6/17.
 */

public class HHActivity extends Activity{
    // 定义一个变量,来标识是否退出
    private static boolean isExit = false;

    Handler mHandler = new Handler() {

        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            isExit = false;
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_hh);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent
            event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            exit();
            return false;
        }
        return super.onKeyDown(keyCode, event);
    }

    private void exit() {
        if (!isExit) {
            isExit = true;
            Toast.makeText(getApplicationContext(), "再按一次退出程序",
                    Toast.LENGTH_SHORT).show();
            // 利用handler延迟发送更改状态信息
            mHandler.sendEmptyMessageDelayed(0, 2000);
        } else {
            finish();
            System.exit(0);
        }
    }
}

第二种实现方式,通过记录按键时间计算时间差实现:
package com.gaolei.exitdemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.Toast;

public class MainActivity extends Activity {

    private long exitTime = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            exit();
            return false;
        }
        return super.onKeyDown(keyCode, event);
    }

    public void exit() {
        if ((System.currentTimeMillis() - exitTime) > 2000) {
            Toast.makeText(getApplicationContext(), "再按一次退出程序",
                    Toast.LENGTH_SHORT).show();
            exitTime = System.currentTimeMillis();
        } else {
            finish();
            System.exit(0);
        }
    }

}
 

简单的登陆注册及信息页面,有toast提示 注册人员可以输入姓名,性别,班级,联系方式,下面有提交信息的按钮,登录界面登录人员可以输入用户名及密码,下面要有登录按钮,退出按钮。Tabhost包含三个选项卡,点击第一个选项卡进入注册页面,点击第二个进入登录页面,点击第三个进入列表页面。退出系统时显示对话框确认是否退出,点击确定退出页面,点击取消返回页面 立即下载

相关推荐

按2次退出app

实现按2次back键退出app,第一次按弹出吐司,2分钟内按下第二次,则退出app

点击两次返回键退出

点击两次返回键退出两次点击的间隔时间为两秒钟代码:public class MainActivity extends Activity { private boolean isExit = true; private Context mContext; @Override protected void onCreate(Bundle savedInstanceState)

春水碧于天的博客 999

(Handler)按下按钮后间隔3秒自动弹出一个Toast显示当前时间,按返回时有弹出对话框提示是否退出程序,按确认后退出程序

编写一个程序,按下按钮后间隔3秒自动弹出一个Toast显示当前时间,按返回时有弹出对话框提示是否退出程序,按确认后退出程序 这是android studio文档,eclipse只需要借鉴代码复制粘贴即可

android返回键退出提示的两种方法

本文提供了两种触摸返回键提示退出的两种方法 1.触摸返回键弹出对话框 public void onBackPressed(){ //android 2.0以上的 点击解释为什么 Toast.makeText(this, "你点击了返回键", Toast.LENGTH_LONG).show(); AlertDialog.Builder builder

ayzc210的博客 1350

屏蔽所有键盘按键 VC

写了一个利用底层键盘钩子阻止任意按键的DLL

ThinkPad X230魔改指南:从博通网卡驱动到1080P屏显全攻略(附Sonoma避坑清单)

本文详细介绍了ThinkPad X230的全面改造方案,包括博通网卡驱动(BCM94352HMB)的安装与调试、1080P屏幕改装技术以及macOS Sonoma系统的适配优化。通过硬件升级和软件调优,使这台经典商务本焕发新生,适合DIY爱好者和技术极客参考实践。

weixin_30379531的博客 582

Android单击返回键两次提示退出

需求:单击返回键两次退出,单击一次返回键Toast提示,在其后2s内再单击一次返回键就退出。 代码如下: private static Boolean isExit =false; private static Boolean hasTask =false; Timer tExit =new Timer()

sosohotsummer的专栏 1324

从零构建物联网数据中台:MQTT协议、Node.js服务、MongoDB与InfluxDB双存储及React可视化实战

本文详细介绍了从零构建物联网数据中台的完整实战方案。通过采用MQTT协议作为设备通信标准,结合Node.js搭建高并发数据处理服务,并创新性地使用MongoDB与InfluxDB双存储架构分别管理设备元数据与海量时序数据,最后利用React构建了实时数据可视化控制台。该架构有效解决了物联网项目中数据异构、查询性能低下等核心痛点,为构建高效、可扩展的物联网平台提供了清晰路径。

weixin_28432777的博客 288

双击返回键后退出

代码如下: private int mBackKeyPressedTimes = 0; @Override public void onBackPressed() { if (mBackKeyPressedTimes == 0) { Toast.makeText(this, "再次按返回键将不保存退出", Toast.LENGTH_SHORT).show(); mBack

晓Y的专栏 1741

BAPI创建委外采购订单

使用BAPI BAPI_PO_CREATE1创建委外采购订单,组件为手工输入时,有几个点需要注意: 1、已通过CS01创建过BOM的物料,创建时会自动带出components。如果要修改当前组件清单,可以通过设置pocomponents-change_id = 'E’来实现 lv_sline = lv_sline + 1. ls_pocomponents-po_item = l_ebelp + 10. ls_pocomponents-ITEM_NO = l

Buffalo_soldier的博客 3260

Palantir解密:“本体”的建模逻辑及其扩展方向

上一篇重点从对现实世界建模的角度探讨了“本体”在数字化架构中的核心意义。这里借Palantir的“本体”概念、解析Palantir只是起点,目标旨在以他山之石攻玉——探索数字世界的底层架构逻辑,最终为构建自主体系提供思考。Palantir以“本体论”为核心的建模方案是否代表终极答案,不宜过早下结论,但其思路值得深入剖析。

SZSDQJC的博客 2632

安卓点击返回按键退出应用程序

如果侧边打开状况下,先关闭侧边,然后在执行退出程序代码块 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode == KeyEvent.KEYCODE_BACK) { long secondtime = Sy

骑猪也能看夕阳 1285

LC-3 机器语言 指令集

生活本就沉闷,但跑起来就有风

笔记 1万+

Android实现点击两次退出APP

原文地址: Android实现点击两次退出APP Android 监听返回键退出程序的两种实现 这两天在做一个项目碰到这么个问题,需要主界面点击两次直接退出整个APP而不是返回上一个界面,查找了网上的资料,整合和修改了一下写了这篇博客。 这里我主要以我的项目为例,实现了登录界面,注册界面,在登录界面登录成功则跳转到主界面上,而主界面点击退出回到了登录界面,这显然是不合理的...

lwh156541064的博客 599

YOLO11涨点优化:注意力魔改 | 引入Deformable Attention (可变形注意力),灵活感受野自适应复杂形变目标

Deformable Attention为YOLO11带来的不仅是2.6个百分点的mAP提升,更是一种全新的“形变感知”范式。标准卷积的固定感受野在非刚性目标、多尺度变化和遮挡场景下力不从心——Deformable Attention恰好填补了这一空白。从架构设计到代码实现,从竞品对比到部署方案,从生态工具到安全风险,本文覆盖了将Deformable Attention引入YOLO11所需的全部知识链路。

2601_95807009的博客 284

2021年03月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

给定一个十进制正整数n(0 < n < 1000000000),每个数位上数字均不为0。n的位数为m。现在从m位中删除k位(0

人生就是一个不断学习的过程 1010

模仿QQ退出菜单,单击返回键出现对话框,双击返回键退出程序。

单击的时候出现对话框,重写activity的按钮监听方法即可。 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ getexitdialog().show(); Log.i

302

lammps教程:FeNiCr合金多晶结构建模方法

大家好,我是小马老师。 本文介绍合金多晶模型的建模过程,使用的软件为Atomsk。 Atomsk是一个开源软件,可运行在windows、linux等多种操作系统上,本文使用windows版的Atomsk实现建模,其他操作系统的建模命令基本相同。 建模过程如下: 1. 生成单晶Fe晶胞 atomsk --create fcc 3.65 Fe Fe.xsf 2. 建立多晶节点文件polycrystal.txt 新建一个文本文件polycrystal.txt,文件内容为: box 200 100 200 ran

lammps_jiayou的博客 6658

安卓按返回键实现退出程序

前言:两种实现方式 package com.example.onemoreexit; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.KeyEvent...

文武傲群雄,彳亍定江山 771

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

uni-app怎么实现双击返回退出app

uni-app提供了一个监听返回按钮的api:onBackPress(event) //监听返回键 onBackPress() { uni.showModal({ title: '提示', content: '是否退出来聊?', success: function(res) { if (res.confirm) { // 退出当前应用,改...

mini_1251861209的博客 8474

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android根据系统返回键,来退出应用程序的两种方式

点击返回键:弹出退出的对话框 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { //点击返回键 if(keyCode==KeyEvent.KEYCODE_BACK){ //声明弹出对象并初始化 AlertDialog.Bu

umbrella_419的博客 1764

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android开发:退出程序(对话框、两次返回键退出)

贴代码: public void exitclick(View view) { AlertDialog.Builder aa=new AlertDialog.Builder(this); aa.setTitle("消息提示"); aa.setMessage("确认退出?"); aa.setIcon(R.drawab

萌萌的It人 www.itmmd.com 3251

双击退出、单击退出应用程序

首先,博主先给大家说说单击退出弹出对话框 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { //点击返回键 if(keyCode==KeyEvent.KEYCODE_BACK){ //声明弹出对象并初始化 Aler

DistanceSY的博客 766

Android返回键的监听汇总

Android返回键的监听汇总 一,返回键的简单监听 @Override public void onBackPressed() { Toast.makeText(this, "你点击了返回键", 0).show(); } 二,双击退出 // 返回键的监听 private Boolean isExit = false; @Override public boolean

航天飞哥的博客 661

安卓简单开发-点击两次(back)返回退出程序

现在大多程序都没有点击退出弹出对话框问你是否要退出,我们也要顺应潮流,也要防止用户在使用软件的时候不小心点击到了back键, 所有就设计点击两次back键就直接退出程序。 话不多说  代码贴上 private static boolean isexit=false; private static boolean hastask=false; Timer timer=new Tim

LzLcheer的博客 818

双击返回和单击弹出对话框返回

双击返回:     //时间     private long time;     /**      * 返回键监听      */     @Override     public void onBackPressed() {         //判断,如果点击的时间和上一次点击的时间大于2秒         if(System.currentTimeMillis()-

Forever_Eva的博客 933
上一篇: Activity的LaunchMode和退出应用程序
下一篇: 读取与保存
XHui_Lin
博客等级 码龄10年 27粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值