关闭

[置顶] 【Android】双击返回键,退出android应用程序 双击两次退出程序提示功能 三种实现方法

标签: JAVAandroid应用stringonkeydown
1816人阅读 评论(1) 收藏 举报
分类:

作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985

 QQ986945193 微博:http://weibo.com/mcxiaobing

【Android】双击返回键,退出android应用程序  双击两次退出程序提示功能 三种实现方法

 最下面有项目源代码下载地址。当然,还是希望大家掌握这个小功能。

package davidsystemapp.qq986945193.com.davidsystemapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.Toast;

import java.util.Timer;
import java.util.TimerTask;

/**
 * @author :程序员小冰
 * @GitHub: https://github.com/QQ986945193
 * @新浪微博 :http://weibo.com/mcxiaobing
 * @CSDN博客: http://blog.csdn.net/qq_21376985
 * @交流Qq :986945193
 */

public class MainActivity extends AppCompatActivity {
    private Toast toast;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        toast = Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT);
    }


    /**
     * 双击两次退出程序提示  第一种方式
     */
   /* boolean isState = true;//设置双击退出的变量

    public void onBackPressed() {
        if (isState) { //isState初始值为true
            isState = false;
            Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
            new Timer().schedule(new TimerTask() {
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    isState = true;
                }
            }, 2000);
        } else {
            finish();
        }
    }*/

    /**
     * 双击两次退出程序提示  第二种方式
     */

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {

            quitToast();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    private void quitToast() {
        if (null == toast.getView().getParent()) {
            toast.show();
        } else {
            finish();
//            System.exit(0);
        }
    }

    /**
     * 双击两次退出程序提示  第三种方式
     * <p/>
     * https://github.com/QQ986945193
     */
    // 1.on..2.开发者实现 3.系统调用
    // 条件 :点击物理键盘或者软件盘
    // int keyCode按键编号
  /*  long[] times = new long[2];

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            // ① 找出回调函数
            // ② 点击时间 time1 time2
            // ③ 时间 间隔 <2000 退出
            // ④ 提示再点一次
            times[0] = times[1];
            times[1] = System.currentTimeMillis();
            if (times[1] - times[0] < 2000) {
                finish();
            } else {
                Toast.makeText(getBaseContext(), "再点一次退出", Toast.LENGTH_SHORT).show();
            }
            return true;// 消费事件
        }

        return super.onKeyDown(keyCode, event);
    }*/

}


源代码项目下载地址(欢迎star  fork):https://github.com/QQ986945193/DavidSystemApp


1
0
查看评论

Android连续点击两次退出程序

连续点击两次程序就退出程序,这是一个很有趣的程序功能,下来介绍一下我的实现方式(欢迎大家拍砖指点):    1、在Activity中设置一个long型的全局变量 firstTime=0,用来记录第一次按下的时间(单位为毫秒);    2、响应Activit...
  • fangzhibin4712
  • fangzhibin4712
  • 2014-06-16 17:35
  • 4251

Android 双击返回键退出程序的3种写法~

LZ-Says:给大家推荐一个网站,有兴趣可以查阅,想为大家贡献一点自己的力量也可以投稿,老大审核通过会发表,更好的帮助有需要的人~欢迎大家踊跃投稿~地址如下: http://www.123si.org/android 去年真的浪费了好多的机会,,,而今年,却找不到一个合适...
  • u012400885
  • u012400885
  • 2016-05-17 16:07
  • 11908

Android 双击返回键退出程序 实现

思路:用户按下返回键时设定一个定时器来监控是否2秒内实现了退出,如果用户没有接着按返回键,则清除第一次按返回键的效果,使程序还原到第一次按下返回键之前的状态。定时器是每次用户按下返回键才去创建。 代码如下: /** * 菜单、返回键响应 */ @Override public ...
  • woaixiaozhe
  • woaixiaozhe
  • 2012-05-17 13:12
  • 32292

Android例子—双击退出程序的两种方法

1、定义一个变量,来标识是否退出// 定义一个变量,来标识是否退出 private static boolean isExit = false; Handler mHandler = new Handler() { @Override public v...
  • u012758088
  • u012758088
  • 2017-03-28 08:45
  • 313

Android 实现双击返回键退出应用详细实现方法

前言现在市面上很多应用都会有当用户按返回键的时候提示用户:再按一次将退出应用的提示,也就是双击双击返回键退出应用,接下来我们就用几种办法来实现这个功能效果图实现 第一种办法 响应Activity的 onKeyUp事件,两次点击时间大于2秒钟就不响应,小于2秒钟就退出程序 代码: //记录用...
  • Greathfs
  • Greathfs
  • 2016-10-22 18:04
  • 9989

Android 双击返回键退出程序的3种写法~

Android 双击返回键退出程序的3种写法~ 标签: android双击返回键退出 2016-05-17 16:07 6467人阅读 评论(0) 收藏 举报 分类: Android从浅入深Study(Eclipse)(16) 作者同类文章X 版权声明:本文...
  • dianziagen
  • dianziagen
  • 2017-07-17 11:05
  • 288

Android双击返回键(Back)退出应用程序

实现原理: 双击退出程序的原理无非就是设置一个退出标识(询问是否退出),如果改变了这个标识(确认退出),则再次点击时立马退出,如果规定时间内没有退出,则延时重置这个标识(不退出)。 作者: woider 链接:http://www.imooc.com/article/7135 来源:慕课网 本文...
  • Zuo_0625
  • Zuo_0625
  • 2016-05-03 17:58
  • 387

android双击返回键退出应用(三种实现方法)

  • 2014-10-25 16:20
  • 979KB
  • 下载

Android点击两次返回键退出程序

Android应用中退出应用程序通常有两种做法,一种是使用选择对话框询问用户是否退出应用程序,另外一种是快速点击返回按钮两次然后退出应用。其中第二种实现方式较为普遍,而且我个人认为这种方式用户体验性要好点。下面,我介绍两种常用的点击两次返回退出应用的实现方式。 1. 通过标识变量进行控制。首先定义一...
  • huyongl1989
  • huyongl1989
  • 2015-09-26 14:24
  • 5566

Unity双击返回键退出游戏适用于Android与PC

游戏中需要开始也需要结束,有退出按钮最好,没有退出按钮或者用户想直接退出怎么办呢?最简单的方法就是按下返回键退出,但是有时候用户会误操作,不小心按下了返回键不能直接退出吧,于是就要加个判断,双击退出,话不多说直接上代码: using UnityEngine; using System.Collec...
  • Superficialtise
  • Superficialtise
  • 2017-04-28 15:40
  • 1649
    个人资料
    • 访问:416735次
    • 积分:5586
    • 等级:
    • 排名:第5651名
    • 原创:156篇
    • 转载:8篇
    • 译文:0篇
    • 评论:71条
    博客专栏
    我的微博
    最新评论