当前位置: 首页 Android开发

安卓应用程序退出方式

时间:2023年05月25日 阅读:911
以下内容仅是站长或网友个人学习笔记、总结和研究收藏。不保证正确性,因使用而带来的风险与本站无关!
淘客轩-衣食住行外卖生活好助手

为了追赶苹果iphone系统的交互方式,现在大部分手机都在模仿苹果,加上app开发者也在模仿苹果应用的交互方式,在APP退出的时候都不是让用户点击了“后退键”就退出。防止用户点错了后退键而造成的用户体检不好因此基本上都会加入二次确认弹窗,挽留一下用户。

目前流行的解决一般分为两种:

一、按一次后退键显示一个对话框决定是否退出

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    //点击了后退键
    if(keyCode == KeyEvent.KEYCODE_BACK)
    {
        //创建对话框构建器对象
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("温馨提示")//对话框标题
        .setMessage("确定要退出么?")//对话框内容
        .setIcon(R.drawable.ic_launcher)//对话框图标
        .setCancelable(false) //点击对话框之外的部分是否取消对话框
        .setPositiveButton("确定", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                finish();//结束当前Activity
            }
        })
        .setNegativeButton("取消", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                dialog.dismiss();//取消对话框
            }
        });
        //生成对话框
        Dialog dialog = builder.create();
        //显示对话框
        dialog.show();
    }
    return super.onKeyDown(keyCode, event);
}

二、连续按两次后退键退出,一般两次按键时间间隔为2秒

(1)一般思路方法:

连续点击后退键,判断两次按键时间的差的绝对值是否小于2000(毫秒)

public class MainActivity extends Activity {
    long timefirst = 0; //一定要是long类型的
    long timesecond = 0;
    boolean isKeyBack = false;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode==KeyEvent.KEYCODE_BACK)
        {
            timesecond = System.currentTimeMillis();  //记录当前按键时间,相当于上一次为第二次按键
            if(timesecond-timefirst<2000) //如果两次按键时间小于2000毫秒,结束应用程序
            {
                finish();
            }
            else
            {
                Toast.makeText(this, "再按一次退出程序", 1).show();
                timefirst = timesecond; //如果不能退出,则当前按键时间设为第一次,下一次为第二次
                return true;            //屏蔽后退键的效果 return false;也可以 ,只要不让方法执行super.onKeyDown(keyCode, event);即可
             }  
      } 
     return super.onKeyDown(keyCode, event); 
 }


打赏
标签: 安卓 Android 退出

本文地址:https://www.momojc.cn/android/anzhuoying.html

相关推荐
支付宝领大额红包
支付宝领大额红包
似水流年
    今日已经过去小时
    这周已经过去
    本月已经过去
    今年已经过去个月
小姐姐视频

关于本站 | 隐私政策 | 免责声明 | 广告合作 | 我要投稿 | 后台管理

CopyRight © 2023-2024 MOMO教程 WWW.MOMOJC.CN , All Rights Reserved.

站长E-mail:378074730@qq.com 网站已运行:  运行时长:0.033 秒

京ICP备20029690号-1京ICP备20029690号-2 京公网安备11011402013892号京公网安备11011402013892号 中国互联网违法和不良信息举报中心 网络违法犯罪举报网站

本网站托管于 腾讯云 .由网站卫士提供网站加速和攻击防御服务 提供CDN加速/防御服务.由zblogcn强力驱动 又拍云提供CDN加速/云存储服务 51la网站统计