【转】Android 实现“再按一次退出程序”

From:http://blog.csdn.net/ldj299/article/details/7574365

个人觉得当用户按下后退键时,出现"再按一次退出"的提示防止误操作比弹出一个对话框是会更人性化的。话不多说上代码:

第一种:重写onKeyDown来监听:

    long waitTime = 2000;
    long touchTime = 0;

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(event.getAction() == KeyEvent.ACTION_DOWN && KeyEvent.KEYCODE_BACK == keyCode) {
            long currentTime = System.currentTimeMillis();
            if((currentTime-touchTime)>=waitTime) {
                Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
                touchTime = currentTime;
            }else {
                finish();
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

第二种是重写onBackPressed方法直接监听返回键:

  @Override
    public void onBackPressed() {
//        super.onBackPressed();

        long currentTime = System.currentTimeMillis();
        if((currentTime - touchTime) >= waitTime) {
            Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show();
            touchTime = currentTime;
        }else {
            finish();
        }
    }
时间: 2024-10-21 11:16:26

【转】Android 实现“再按一次退出程序”的相关文章

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

Android开发之”再按一次退出程序“的实现

现在移动客户端退出程序对话框退出越来越不流行了,都开始使用连续按两次来退出,即著名的“再按一次退出程序”模式.现在就看看怎么实现的吧. @SuppressLint("HandlerLeak") Handler handler = new Handler(){ public void handleMessage(Message msg){ switch (msg.what) { } } }; boolean willExit = false; @Override public void

Android中点击物理返回按键(再按一次退出程序)

private long exitTime = 0; @Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-exitTime) > 2000){ Toast.makeText(getA

再按一次退出程序

在android程序应用中常常会遇到点击返回键时提示再按一次退出程序. 要实现这个功能须要完毕两点: 一.可以彻底退出程序 ·之前看到有人用 finish();,事实上这样做并不能真的退出程序,这样仅仅是结束当前的Activity,一个程序中是能够有多个Activity的,在android能够彻底关闭进程的方法有好几种. 第一种: // 获取当前进程的id int pid = android.os.Process.myPid(); android.os.Process.killProcess(p

android按2次返回键退出程序的代码

在做安卓应用是我们经常要判断用户对返回键的操作,一般为了防止误操作都是在用户连续按下两次返回键的时候提示用户是否退出应用程序.方法很多种,这里通过记录按键时间计算时间差实现: import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.widget.Toast; public class MainActivity extends Activity { pri

Android按2次返回键退出程序

重载 onKeyDown() 方法,判断2次返回按键的时间,不大于2秒就退出 1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 long exitTime = 0; 4 复制代码 5 // 判断按下的是不是返回键 6 if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ 7 if((Sy

Android“再按一次退出程序”的具体实现

Android应用中许多退出程序的方式都是在你点击了返回按钮的时候,它弹出一个信息"再按一次退出",这个和时候我们只需要在按一次返回按钮,程序就退出了,有的 时候时间间隔是3秒或者其他的时间间隔,今天我就简单说一下实现原理. 其实实现还是比较简单的,我们需要在Activity中覆盖一个方法:public void onBackPressed():这个方法在返回键被点击的时候调用,覆盖这个方法之后我们重写它的实现: <span style="white-space:pre

Android之再谈Fragment

上一次我写了一个Fragment的简单使用,这次我来实现这个: 首先想想上次写的东西 crime类 crimeFragmnet类 crimeActivity类 如上图的的前三个类.和上次一样这次我们来建CrimeLab类 crimeListFragement类和crimeListActivity类. 上次,我们为fragment加入xml布局文件,我们在重写onCreateView的方法中使用inflater把xml文件填充到我们的fragment: public View onCreateVi

android——如何从一个activity中退出程序

软件一运行起来,先是一个主Activity显示一张图片.然后用startActivity(Intent intent)方法打开另一个Activity.我想在这个Activity中让用户按返回键后,不返回到前一个Activity,而是弹出一个对话框,提示软件是否关闭. 这里有两个问题: 1.截取返回按键事件,屏蔽返回行为.只需要在程序里加入这段就好 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCod