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);

}

或者

private long exitTime = 0;



    

    @Override

    public boolean dispatchKeyEvent(KeyEvent event) {

        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK

                && event.getAction() == KeyEvent.ACTION_DOWN

                && event.getRepeatCount() == 0) {  

            if((System.currentTimeMillis()-exitTime) > 2000){  

                Toast.makeText(getApplicationContext(), "再按一次退出程序!

", Toast.LENGTH_SHORT).show();                                

                exitTime = System.currentTimeMillis();   

            } else {

                finish();

                System.exit(0);

            }

            return true;   

        }

return super.dispatchKeyEvent(event);

    }

另外一种:点击返回键弹出确定窗体 选择退出

@Override

    public boolean dispatchKeyEvent(KeyEvent event) {

        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK

                && event.getAction() == KeyEvent.ACTION_DOWN

                && event.getRepeatCount() == 0) {            

            //详细的操作代码

            new AlertDialog.Builder(this)



                       

               .setTitle("确定退出程序么")



            



            .setNegativeButton("取消", new DialogInterface.OnClickListener() {



            @Override



            public void onClick(DialogInterface dialog, int which) {

                    }

        

            })



            .setPositiveButton("确定", new DialogInterface.OnClickListener() {



                public void onClick(DialogInterface dialog, int whichButton) {

            

                finish();//

           

               }



                }).show();



        return true;

}

        return super.dispatchKeyEvent(event);

    }

android 点击返回键退出程序的方法的更多相关文章

  1. android点击返回键,如何做到不destory当前activity,只是stop。重新返回该activity的 时候可以直接使用,不需要创建新的activity实例

    问题描述,如题目: android点击返回键,顺序执行 pause,stop,destory. 以至于想重新进入这个activity的时候还要重新执行onCreate()方法,那么如何解决不再重新执行 ...

  2. Android 中点击返回键弹出“在按一次退出程序”的做法

    在很多应用中都有这种做法,连续点击两次才退出程序,目的是为了防止用户不小心点击到了返回键而退出程序了,添加了一次用户确认的过程. 其实做法很简单,只需要做一个延时的消息处理就可以了. 首先在我们在一个 ...

  3. Android 监听返回键退出程序的两种实现

    1.Android 双击返回键退出程序 思路:用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态.定 ...

  4. android 点击返回键 以及 加载activity 生命周期 记录。。。,一目了然

    简叙 Activity 生命周期及android 返回按钮捕捉   @Override protected void onPostCreate(Bundle savedInstanceState) { ...

  5. vs xamarin android 监听返回键退出程序

    public override bool OnKeyDown([GeneratedEnum]Keycode keyCode, KeyEvent e) { if (keyCode == Keycode. ...

  6. 关于android app两次点击返回键退出的处理

    现在的android app在开发时,引入了两次点击返回键退出app的设计 为了避免用户误触,这个设计很人性化 中文网上社区有些同学贴了一些实现的例子,我觉得不是很好 代码如下 public bool ...

  7. Android中的“再按一次返回键退出程序”实现

    用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dial ...

  8. android webview点击返回键返回上一级activity

    android webview点击返回键返回上一个activity @Override public boolean onKeyDown(int keyCode, KeyEvent event) { ...

  9. android webview点击返回键回到上一个html

    android webview点击返回键返回上一个html @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ( ...

随机推荐

  1. LeetCode.3-最长无重复字符子串(Longest Substring Without Repeating Characters)

    这是悦乐书的第341次更新,第365篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Medium级别的第2题Longest Substring Without Repeating Cha ...

  2. input点击修改样式

    <input id="geren" type="button" value="个人奖励" style="BORDER-TOP ...

  3. 手机网站下拉加载数据js(简单版)

    加载内容的地方html <div class="bgcolor_f0 clearfix"> <div class="recharge"> ...

  4. Oracle占用内存过高解决办法

    1.cmd sqlplus system账户登录 2.show parameter sga; --显示内存分配情况 3.alter system set sga_max_size=200m scope ...

  5. [转]"RDLC"报表-参数传递及主从报表

    本文转自:http://www.cnblogs.com/yjmyzz/archive/2011/09/19/2180940.html 今天继续学习RDLC报表的“参数传递”及“主从报表” 一.先创建D ...

  6. 阿里云 CentOS 6.5 使用XAMPP 搭建LAMP环境

    LAMP环境是常见的服务器环境,也是PHP网站常用的服务器环境,很多人喜欢手动配置,但是手动配置LAMP复杂.麻烦,简单一点的话可以使用集成环境.试了下LNMP的集成环境,用不习惯,另外由于本地一直使 ...

  7. mac下idea卡顿问题解决

    idea在加载相对来说比较大的系统时,经常性出现卡顿,就是直接卡死,以至于写起代码特别难受. 最后找到的解决方案是修改idea.vmoptions中的内存大小 执行 find / -name idea ...

  8. 我的MYSQL学习心得(推荐)

    http://www.cnblogs.com/lyhabc/category/573945.html

  9. jquery学习之$(document).ready()

    参考资料: 1.W3School在线教程:http://www.w3school.com.cn/jquery/event_ready.asp 2.某人博客园:http://www.cnblogs.co ...

  10. for 循环练习题

    X3 * 6528 = 3X * 8256X为一个数字 填入一个数字 使等式成立 for (var x=1;x<=9&&x>0;x++) { if ((x*10+3)*65 ...