博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android后退事件的处理
阅读量:6289 次
发布时间:2019-06-22

本文共 1095 字,大约阅读时间需要 3 分钟。

当我们想退出应用程序时,一般都会采用按物理按键(后退键)的做法,当用户在按两次后退键的时候就将应用程序退出,即销毁当前的Activity();

重写onBackPressed()方法即可:
代码如下:
    
 
private
int
clickCount
=0;
      
@Override
      
public
void
onBackPressed() {
            
//
TODO
Auto-generated method stub
            
//super.onBackPressed();
            
            
if
(
clickCount
< 1){
                  Toast.makeText(
this
,
"再按一次后退键退出应用程序!"
,Toast.
LENGTH_SHORT
).show();
                  
clickCount
++;
            }
else
{
                  finish();
            }
      }
 
注意,需要将父类的onBackPressed()方法去掉,否则无论后面怎么写当按一次后退键的时候程序就会退出。
但这种写法有不好的地方,就是当用户在不小心按下两次后退键的时候都会退出,这样就不好,没有很好的用户体验。
为此我们将程序改进,当用户在按下第二次次退出键后如果和第一次之间的时间超过1s,我们就不将程序退出,视为无效的操作。
 
改进的代码如下:
private
long
lastClickTime
= 0;
   
@Override
      
public
void
onBackPressed() {
            
//
TODO
Auto-generated method stub
            
//super.onBackPressed();
      
      
if
(
lastClickTime
<= 0){
            Toast.makeText(
this
,
"再按一次后退键退出应用程序!"
,Toast.
LENGTH_SHORT
).show();
            
lastClickTime
= System.currentTimeMillis();
      }
else
{
            
long
currentClickTime = System.currentTimeMillis();
            
if
(currentClickTime-
lastClickTime
< 1000){
                  finish();
            }
else
{
                  Toast.makeText(
this
,
"再按一次后退键退出应用程序!"
,Toast.
LENGTH_SHORT
).show();
                  
lastClickTime
= currentClickTime;
            }
      }
}

转载于:https://www.cnblogs.com/changjl/p/4117882.html

你可能感兴趣的文章
spring batch中用到的表
查看>>
资源文件夹res/raw和assets的使用
查看>>
UINode扩展
查看>>
LINUX常用命令
查看>>
百度云盘demo
查看>>
概率论与数理统计习题
查看>>
初学structs2,简单配置
查看>>
Laravel5.0学习--01 入门
查看>>
时间戳解读
查看>>
sbin/hadoop-daemon.sh: line 165: /tmp/hadoop-hxsyl-journalnode.pid: Permission denied
查看>>
@RequestMapping 用法详解之地址映射
查看>>
254页PPT!这是一份写给NLP研究者的编程指南
查看>>
《Data Warehouse in Action》
查看>>
String 源码浅析(一)
查看>>
Spring Boot 最佳实践(三)模板引擎FreeMarker集成
查看>>
Fescar 发布 0.2.3 版本,支持 Redis 和 Apollo
查看>>
Google MapReduce到底解决什么问题?
查看>>
CCNP-6 OSPF试验2(BSCI)
查看>>
Excel 2013 全新的图表体验
查看>>
openstack 制作大于2TB根分区自动扩容的CENTOS镜像
查看>>