文档章节

Android 再按一次返回键退出的第三种方式

花佟林雨月
 花佟林雨月
发布于 2013/11/08 11:00
字数 207
阅读 1313
收藏 14

  网上已经有了其他方式,个人感觉,onKeyDown里面,尽量减少操作,便有了下面的实现思路。

  使用Handler进行实现,在onKeyDown里面只需要发送一条消息,其他操作全交给handleMessage去处理就ok。

首先,定义Handler及事件和等待时长:

private static final int MSG_EXIT = 1;
private static final int MSG_EXIT_WAIT = 2;
private static final long EXIT_DELAY_TIME = 2000;
private Handler mHandle = new Handler() {
    public void handleMessage(Message msg) {
        switch(msg.what) {
            case MSG_EXIT:
                if(mHandle.hasMessages(MSG_EXIT_WAIT)) {
                    finish();
                } else {    
                    Toast.makeText(MainActivity.this, "再按一次返回键退出", Toast.LENGTH_SHORT).show();
                    mHandle.sendEmptyMessageDelayed(MSG_EXIT_WAIT, EXIT_DELAY_TIME);
                }
                break;
            case MSG_EXIT_WAIT:
                break;
        }
    }
};

 其次,重载onKeyDown:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(KeyEvent.KEYCODE_BACK == keyCode) {
        mHandle.sendEmptyMessage(MSG_EXIT);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

 

© 著作权归作者所有

共有 人打赏支持
花佟林雨月
粉丝 77
博文 11
码字总数 10652
作品 0
成都
私信 提问
加载中

评论(1)

l
luob
写的真不错!
高通方案的Android设备几种开机模式的进入与退出

高通方案的Android设备主要有以下几种开机模式,Android、EDL、Fastboot、Recovery和FFBM,其进入及退出的方式如下表。 开机模式 屏幕表现 冷启动 热启动 按键退出 命令退出 Android/Normal...

sunrain_hjb
2018/10/13
0
0
android按2次返回键退出程序的代码

在做安卓应用是我们经常要判断用户对返回键的操作,一般为了防止误操作都是在用户连续按下两次返回键的时候提示用户是否退出应用程序。方法很多种,这里通过记录按键时间计算时间差实现: im...

40岁的青春
2015/04/21
0
0
Activity的4种启动模式

Activity共有四种启动模式,standard/singleTop/singleTask/singleInstance 在AndroidManifest.xml中在<activity>标签中launchMode指定 <activity android:name=".MainActivity"android:laun......

DouDouLee
2016/03/06
7
0
Android Notification详解——响应notification事件

上一篇讲了如何创建并显示一个notification,这一篇就总结下点击notification后,程序应该如何响应。 一般来讲,点击一个notification后,都会打开一个Activity做为对点击事件的响应,这个A...

Carl_
2015/04/29
0
0
androidkit 发布 0.5.1 版本

androidkit是一个集合了android开发过程中常用代码的工具包,它可以让你方便地实现以下功能: 包含SQLiteOpenHelper的简单实现类。 获取指定URL中返回的内容的String对象。 View控件的截图。...

貌似掉线
2012/11/19
2.1K
13

没有更多内容

加载失败,请刷新页面

加载更多

容器服务

简介 容器服务提供高性能可伸缩的容器应用管理服务,支持用 Docker 和 Kubernetes 进行容器化应用的生命周期管理,提供多种应用发布方式和持续交付能力并支持微服务架构。 产品架构 容器服务...

狼王黄师傅
昨天
3
0
高性能应用缓存设计方案

为什么 不管是刻意或者偶尔看其他大神或者大师在讨论高性能架构时,自己都是认真的去看缓存是怎么用呢?认认真真的看完发现缓存这一块他们说的都是一个WebApp或者服务的缓存结构或者缓存实现...

呼呼南风
昨天
12
0
寻找一种易于理解的一致性算法(扩展版)

摘要 Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可...

Tiny熊
昨天
2
0
聊聊GarbageCollectionNotificationInfo

序 本文主要研究一下GarbageCollectionNotificationInfo CompositeData java.management/javax/management/openmbean/CompositeData.java public interface CompositeData { public Co......

go4it
昨天
3
0
阿里云ECS的1M带宽理解

本文就给大家科普下阿里云ECS的固定1M带宽的含义。 “下行带宽”和“上行带宽” 为了更好的理解,需要先给大家解释个词“下行带宽”和“上行带宽”: 下行带宽:粗略的解释就是下载数据的最大...

echojson
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部