返回键捕获 应用程序退出的两种方式(转)

作为应用程序一个较好的用户体验应该是:在退出应用程序前询问用户是否真正退出?目前普遍做法是,一在退出前询问是否真正退出,二是连续按两下退出。

返回键捕获 应用程序退出的两种方式

实现上述两种应用退出方式需要在onkeyDown()来进行捕获返回键

在Activity中,如果需要动态注册广播官方文档建议在onResume()进行注册,在onPause()中取消注册。注册部分代码如下:

应用程序退出方式一:确认退出对话框

public boolean onKeyDown(int keyCode, KeyEvent event) {
       if (keyCode == KeyEvent.KEYCODE_BACK){
           AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
           alertDialog.setTitle("提示");
           alertDialog.setMessage("确认退出马上学Android");
           alertDialog.setPositiveButton("确认",new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialogInterface, int i) {
                   finish();
               }
           });
           alertDialog.setNegativeButton("取消",new DialogInterface.OnClickListener() {
               @Override
               public void onClick(DialogInterface dialogInterface, int i) {
                   return;
               }
           });
           alertDialog.show();
       }
       return true;
}
  • 应用程序退出方式二:连续按两次确认退出

    private long exitTime = 0;
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
    
            if((System.currentTimeMillis() - exitTime) >2000){
                Toast.makeText(this,"再按一次退出应用程序",Toast.LENGTH_SHORT).show();
                exitTime = System.currentTimeMillis();
            } else {
                finish();
                System.exit(0);
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
     }

    http://chenqichao.me/2014/04/18/037-Android-Tutorial-029/

时间: 2024-10-09 23:08:33

返回键捕获 应用程序退出的两种方式(转)的相关文章

安卓应用程序退出的两种方法

现在的APP退出的时候都不是让用户点击了“后退键”就退出.防止用户点错了后退键而造成的用户体检不好. 一年前搞的Demo代码不见了,重新写下就当是复习和以后直接拿来用把 目前流行的解决一般分为两种: 一.按一次后退键显示一个对话框决定是否退出 1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 // TODO Auto-generated method stub 4 //点击了后退键 5 if(keyCo

用程序猿思维、程序设计师思维两种方式写求斐波那契数列的方法。

//用Java实现斐波那契数列(Fibonacci) public class Test { public int f(int n)//n代表第几个数字.程序返回它相应的值 { return n>2?f(n-1)+f(n-2):1;//看似如此优雅的一句程序 } //程序设计师的思维:会重构上面的代码.让他们更易读.推荐!! ! public int fibo(final int pos) { final int num; if(pos>2) num = fibo(pos-1)+fibo(po

用程序员思维、程序设计师思维两种方式写求斐波那契数列的方法。

//用Java实现斐波那契数列(Fibonacci) public class Test { public int f(int n)//n代表第几个数字,程序返回它对应的值 { return n>2?f(n-1)+f(n-2):1;//看似如此优雅的一句程序 } //程序设计师的思维:会重构上面的代码,让他们更易读,推荐!!! public int fibo(final int pos) { final int num; if(pos>2) num = fibo(pos-1)+fibo(pos

Android更改桌面应用程序launcher的两种方式

版权声明:本文为博主原创文章,未经博主允许不得转载. launcher,也就是Android的桌面应用程序.下图是我正在使用的魅族手机的launcher应用程序: 接下来我们要开发一个自己的launcher,使其替代系统的默认launcher. 怎样使我们的应用程序成为一个launcher? 首先我们要有一个自己的Android应用,在这里,我使用最简单的应用程序Hello, 使用eclipse创建Android项目我这里就省略了,直接上图 来看看我的AndroidManifest.xml [c

小程序-引用的两种方式:import和include

import import可以在该文件中使用目标文件定义的template,如: 在mine.wxml中定义了一个叫item的template: <template name="item"> <text>{{text}}</text> </template> 在detail.wxml中引用了mine.wxml,就可以使用item模板: <import src="../mine/mine.wxml"/> &l

cocos2d-x的lua脚本加载CocostudioUI两种方式

前言 当前版本使用的是quick cocos2dx lua 3.3.UI使用cocostudio编辑器.我们在程序里面可以使用两种方式进行解析UI.开始的时候用的是quick的方法,结果遇到了坑(百分比控件布局,你们可以自己试一下什么效果). 我在后面简单提一下,不过不是自己遇到的坑,就不知道有多坑. 一.quick使用cocostudio 1.加载 local uiNode = cc.uiloader:load("TestUI.json") self:addChild(uiNode)

点击手机返回键关闭应用程序

void Update() { //点击手机返回键关闭应用程序 if (Input.GetKeyDown(KeyCode.Escape) || Input.GetKeyDown(KeyCode.Home)) { Application.Quit(); } }

Android项目实战(二):安卓应用程序退出的三种方法

原文:Android项目实战(二):安卓应用程序退出的三种方法 现在的APP退出的时候都不是让用户点击了“后退键”就退出.防止用户点错了后退键而造成的用户体检不好. 一年前搞的Demo代码不见了,重新写下就当是复习和以后直接拿来用把 目前流行的解决一般分为两种: 一.按一次后退键显示一个对话框决定是否退出 1 @Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 // TODO Auto-generated m

[微信小程序] 微信小程序下拉滚动选择器picker绑定数据的两种方式

微信小程序下拉滚动选择器picker绑定数据的两种方式  本地数据绑定和wx.request(OBJECT) json数据绑定 1.本地数据绑定 (对象数组) Page({ data:{ //户型 这是一个本地的对象,然后绑定到页面上 pic_array: [ { id: 13, name: '1室1厅1卫' }, { id: 14, name: '1室2厅1卫' }, { id: 15, name: '2室1厅1卫' }, { id: 16, name: '3室1厅2卫' }, { id: 1