`
bkship
  • 浏览: 47859 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

My “再按一次后退键退出应用”

 
阅读更多

其实你去网上搜这个标题一大堆的帖子,千篇一律的转自同一个人的帖子!

 

以后大家转帖子先实践一下好不好!

 

网上那个达不到预期效果,第一下正常提示, 如果两秒内再点 就退出 过了两秒点还是会正常提示

 

但是第三次一定会退出。

 

下面是网上疯传的代码:

 

 

private static Boolean isExit = false;
    private static Boolean hasTask = false;
    Timer tExit = new Timer();
    TimerTask task = new TimerTask() {
      
        @Override
        public void run() {
            isExit = false;
            hasTask = true;
        }
    };
     
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        System.out.println("TabHost_Index.java onKeyDown");
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if(isExit == false ) {
                isExit = true;
                Toast.makeText(this"再按一次后退键退出应用程序", Toast.LENGTH_SHORT).show();
                if(!hasTask) {
                    tExit.schedule(task, 2000);
                }
            else {
                finish();
                System.exit(0);
            }
        }
        return false;

 

    }

 

 

里面的hasTask自从第一次timer后变true后 第二次就是只是显示toast了 不会去修改isExist变量了

 

这样第三次会直接进入到else里面finish程序。

 

如果不要hasTask会在第二次 点的时候说timer有任务了 而崩溃

 

但是如果每次都新建一个timer就可以解决这个问题

 

一下是我的代码,有错请指出:

 

 

private Boolean isPressedBack = false;

public boolean onKeyDown(int keyCode, KeyEvent event) {

if (keyCode == KeyEvent.KEYCODE_BACK) {

if (isPressedBack == false) {

isPressedBack = true;

Toast.makeText(this, "再按一次后退键退出应用程序", Toast.LENGTH_SHORT).show();

Timer timer = new Timer();

TimerTask task = new TimerTask() {

public void run() {

isPressedBack = false;

}

};

timer.schedule(task, 2000);


} else {

ActivityFileManager.this.finish();

}

}

return false;

}

分享到:
评论
1 楼 one_old_water 2012-07-11  
哥,网上传来传去的就是想要那种效果:按第一次会提示,两秒后按还会提示,第三次按就一定会退出。

相关推荐

    返回键退出的俩种形式

    在Android应用开发中,"返回键退出"是一个常见的功能需求,它允许用户通过按下设备上的返回键来关闭应用程序。通常,有两种主要的方式实现这个功能,它们是:重写返回键事件和调用Application的退出方法。下面将详细...

    Android中双击返回键退出应用实例代码

    Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); } else { MyApplication.getInstance().exit(); } return true; } return super....

    使用Application做android完全退出系统实例

    在Android开发中,有时我们需要实现一个功能,使得用户在点击某个按钮后,应用程序能够完全退出,包括清除所有活动栈中的Activity以及停止后台服务。这里我们将深入探讨如何利用`Application`类来实现这一功能,以及...

    一次性退出所有avtivity

    这样,当用户按下返回键时,整个应用就会退出。 ```java Intent intent = new Intent(context, YourBaseActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish()...

    android 判断应用是否第一次启动

    当应用首次启动时,我们可以检查SharedPreferences中是否存在特定的键(key),如果不存在,那么可以认为是第一次启动。 1. 创建SharedPreferences实例: ```java SharedPreferences sharedPreferences = ...

    如何完全退出程序

    在Android应用开发中,完全退出一个程序并非简单地调用某个单一函数就能完成。...在大多数情况下,遵循Android的默认行为,允许用户通过按回退键回到主屏幕,而不是强制退出应用,是更合适的实践。

    返回键退出程序的两种方式.zip

    在Android开发中,退出应用程序是常见的操作,通常用户可以通过点击屏幕上的返回键或者使用特定的菜单选项来结束程序。本文将详细讲解两种实现"返回键退出程序"的方法,并结合提供的`JavaApk源码说明.txt`进行分析。...

    MyOffice有前进后退及验证码功能

    MyOffice是一款功能强大的办公软件,它集成了许多高级特性,以提供用户更加高效且安全的办公体验。在这款软件中,“前进”和“后退”功能以及“验证码”功能是其核心亮点,对于提高用户体验和保护数据安全起着至关...

    Android完全退出应用程序的方法

    然而,有些情况下开发者可能需要提供一个完全退出应用的功能,例如用户选择退出或者清理内存。本篇文章将详细介绍如何在Android中实现完全退出应用。 首先,我们要明确的是,Android系统通常不推荐开发者强制退出...

    Apk完全退出Apk

    在Android应用开发中,完全退出一个APK是一个常见的需求,特别是在一些需要确保用户隐私或希望关闭所有服务的情况下。本文将详细讲解如何实现这个功能,并基于提供的`MyAplication.java`源代码文件和`完全退出程序...

    android 完美退出程序

    在Android开发过程中,有时我们需要实现一个“一键退出”功能,即用户点击某个按钮后能够迅速且干净地关闭整个应用程序。这不仅可以提升用户体验,还能确保程序资源得到及时释放。本文将详细介绍一种在Android中实现...

    exits完全退出

    在Android应用程序开发过程中,有时我们需要实现一个“完全退出”的功能,即当用户选择退出应用时,不仅仅关闭当前活动(Activity),而是将应用的所有活动全部关闭,确保用户能够彻底地离开应用。这种需求在很多...

    判断是否第一次进入应用

    在Android应用开发中,我们经常需要判断用户是否是第一次启动应用,以便进行特定的引导流程或者设置初始状态。"判断是否第一次进入应用"这个话题,就是关于如何在Android中使用SharedPreferences来实现这一功能的。 ...

    应用源码之MyApplication.zip

    本资源"应用源码之MyApplication.zip"提供了一个Android应用程序的源码,主要针对初学者和希望深入研究的开发者,旨在帮助他们了解Android应用的基本结构和运行机制。以下将对这个项目进行详细的分析和解读。 首先...

    MY1690-12P MP3解码模块应用程序(含驱动程序)

    MY1690-12P MP3解码模块是一款专为音频播放设计的硬件组件,常用于嵌入式系统和DIY项目中。这款模块的核心是STC15F2K60S2单片机,这是一款8位、低功耗、高性能的微控制器,由宏晶科技(STC)制造。STC15F2K60S2具有...

    mydesk简约桌面插件

    通过智能化的管理,mydesk使桌面变得井井有条,让每一次打开电脑都是一次愉悦的体验。 总之,mydesk简约桌面插件是提升电脑使用体验的理想选择。它将复杂的桌面整理工作化繁为简,通过自动化和个性化设置,让每个人...

    My2480-16P模块使用说明

    * 000 按键接地,按一下就响,在响的过程中,再按会打断,然后重头开始播放,播放完一遍停止。 * 001 按键接地,按一下就响,在响的过程中,再按不能打断,直到响完为止,响完再按才有效。 * 010 电平保持触发,按键...

    Oh-My-Esc:按下ESC键时的警报应用程序

    "Oh-My-Esc"应用程序正是针对这一需求而生,它在用户按下ESC键时播放指定声音,以提供一种新颖的反馈机制。本文将深入探讨这款应用的开发背景、实现原理以及关键技术。 一、应用背景与设计思路 "哦,我的电调!...

    list循环退出Activity,单例模式实现android的退出功能,代替广播,singleton

    应用程序可能会由多个Activity组成,而在某些情况下,可能需要一次性结束所有的Activity,例如退出应用程序。通常情况下,开发者可能会使用广播机制来实现这一功能,但使用单例模式来代替广播也可以达到同样的效果,...

Global site tag (gtag.js) - Google Analytics