Android实现退出时提示再按一次退出

思路:

用定时器(timer)计时,当用户第一次点返回键时提示“再按一次退出”,两秒之内再点一次退出。不点就判断为误触。

package com.example.themtest;

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

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

public class MainActivity extends Activity {

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    //重写onKeyDown方法,判断是否点击退出键
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        switch (keyCode) {
        case KeyEvent.KEYCODE_BACK:
            handleCilick();//点击就跳转到此方法
            return true;

        default:
            break;
        }
        return super.onKeyDown(keyCode, event);
    }

    /*
    *此变量用来计算点的次数,初始值为false,第一点设置为true,如果第二次点就为false,退出
    *如果没点就不做操作
    */
     private boolean isDoubleClick;
     Timer timer = new Timer();
     private void handleCilick() {
        // TODO Auto-generated method stub
        System.out.println(isDoubleClick);
        if (!isDoubleClick) {
            isDoubleClick = true;
            //第二次点击,用到了TimerTask
            Toast.makeText(this, "再按一次推出", Toast.LENGTH_SHORT).show();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    isDoubleClick = false;
                }
            }, 2000);
        } else {
            finish();
            System.exit(0);
        }

    }

}
时间: 2024-10-09 22:08:25

Android实现退出时提示再按一次退出的相关文章

Android连续点击两次返回键退出应用,提示“再按一次退出应用"

// 定义一个long型变量,用于判断两次点击的间隔 private long exitTime: // 实现返回键的点击事件 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { exit(); // 在这里进行点击判断 return false; } return super.onKeyDown(keyCode, event); } public void

在cocos2d-x-3.0 android 平台编译时提示CocosGUI.h: No such file or directory

分类是个让人蛋疼的事情,所幸自己的博客自己做主.这是个高兴的开始. 每天抽空玩2048,终于忍受不住,于是决定自己从网上download下源码,自己编译一个出来.所有的事情都很容易,除了操蛋的中文注释,在Unicode(UTF-8无签名)-代码页 65001的编码格式下,会产生很操蛋的错误提示. 当vs2012提示的错误让人摸不着头脑如坠毒海祸水时,首先应该怀疑编码格式,以及是否有中文注释. 然后,给vs添加了CocoStudio所应引用的三个库: HelloCocos\cocos2d\coco

Android 再按一次退出

有两种方法: 1).第一次点击的时候标记一下状态,提示再按一次退出,然后开始计时,如果超过3秒没有再次按返回,一切状态归零,反之,如果3秒内再次按返回键则进行退出. boolean isExit = false; int time = 0; @Override public boolean back() { // TODO Auto-generated method stub if (!isExit) { isExit=true; final Timer timer = new Timer();

linux c开发: 在程序退出时进行处理

有时候,希望程序退出时能进行一些处理,比如保存状态,释放一些资源.c语言开发的linux程序,有可能正常退出(exit),有可能异常crash,而异常crash可能是响应了某信号的默认处理.这里总结一下这些情况,如何获取一个统一的退出处理的点,说白了就是写一个回调函数,让他在程序正常或异常退出时调用. 先看正常退出,即调用exit或者main函数return亦或最后一个线程正常退出时,如何捕获退出事件. 使用atexit函数.头文件:#include<stdlib.h>, 函数原型:void

Android按两次提示退出应用

转载请标明:http://blog.csdn.net/u012637501 Android按两次提示退出应用,核心思想是:在主Activity中重写onKeyDown方法,其是一个回调方法,即当用户按下键盘某个按钮时,我们可以根据键盘码判断按下的是哪个按键.然后,判断计算两次按下返回键的时间间隔(如3s),实现两次按下返回键是否退出应用. 具体实现代码如下: /*---onKeyDown方法:按两次返回键退出--*/ public boolean onKeyDown(int keyCode, K

android中实现“再按一次退出”功能

首先,定义一个当前时间的变量:private long mExitTime;这个常量是用来计算得到当前时间的.代码如下: mExitTime = System.currentTimeMillis();// 更新mExitTime到当前时间 定义两次点击退出按钮的最大时间间隔:private long waitTime=2000;当时间间隔小于waitTime时退出程序,大于waitTime时此次点击就是第一次点击了,会弹出再次点击退出的提示. 然后实现页面的onkeydown事件.代码如下: p

ubuntu设置root密码及 Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次

原文:ubuntu设置root密码及 Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次 alt+f2,在弹出的运行窗口中输入:gnome-terminal sudo?passwd?root,回车后按提示输入两次root的密码 用xftp root连接时显示ssh服务器拒绝了密码,请重新连接.由于sshd的设置不允许root用户用密码远程登录,修改/etc/ssh/sshd_config文件,但必须是安装了openssh才会有这个文件,如果文件不存在,请检查是否安装了

[UWP]在应用退出时弹出确认提示框

1. 需求 在应用退出时(点击右上角的关闭按钮)弹出一个确认按钮可以说是一个最常见的操作了,例如记事本的"你是否保存": 但这个功能在UWP上居然有点小复杂.这篇文章将解释如何实现这个功能. 2. CloseRequested 为了监视应用退出事件,我本来使用了CoreApplication.Exiting,但好像并不起作用,后来我就没再研究它的触发机制了.在Windows 10 Creators Update (15063)以后UWP提供了一个新的API:SystemNavigati

解决Android应用安装快完毕时提示签名冲突

最近开发了一个Android手机应用,自己用Eclipse调试安装没问题,使用其他人调试生成的bin下的apk就会出现问题,安装到最后提示"安装签名冲突"错误,想了一下估计是没有给apk统一签名导致,以下说一下如何解决这个问题. 生成keystore文件 命令:keytool -genkey -v -keystore "c:\android\release\relase.keystore" -alias androidbook –storepass paxxword