Android APP 退出方法

Android 项目常见的退出方式有两种一种是弹出dialog对话框提示用户退出应用,下面就两种实现形式有示列代码可以参考:

第一种弹出dialog样式退出方式:

1.第一步首先要监测用户是否按下back键,就要重写onKeyDown()

2.构建dialog

主要代码如下:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (event != null && keyCode == event.KEYCODE_BACK) {
            alertDialog();
        }
        return false;
    }
    
    private void alertDialog(){
        CharSequence charTitle = "退出";
        CharSequence charMessage = "您确定退出吗?";
        CharSequence [] charSequence = new CharSequence[]{"确定","取消"};
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(mActivity)
        .setIcon(R.drawable.ic_launcher)//设置头部图片
        .setTitle(charTitle)//设置标题
        .setMessage(charMessage)//设置提示内容
        .setPositiveButton(charSequence[0], new DialogInterface.OnClickListener() {//确定按钮监听
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                /**
                 * 可添加项目处理逻辑
                 */
                
                mActivity.finish();
            }
        })
        .setNegativeButton(charSequence[1], new DialogInterface.OnClickListener() {//取消按钮监听
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                
                
            }
        });
        alertDialog.show();
        
    }

效果如下:

第二种双击两次back键退出样式

主要代码如下:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (event != null && keyCode == event.KEYCODE_BACK) {
            exitApp();
        }
        return false;
    }

/**
     * 双击退出应用
     */
    private boolean isExit = false;
    private void exitApp(){
        if (isExit == false) {
            isExit = true;
            Toast.makeText(mActivity, "再按一下退出", Toast.LENGTH_LONG).show();
            Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                
                @Override
                public void run() {
                    isExit = false;
                }
            }, 2000);
        }else{
            mActivity.finish();
        }
        
    }

效果图如下:

另一种实现方式:

@Override
    public void onBackPressed() {
        if(backToFinish())finish();
    }

/**
     * 双击退出
     */
    private int BACK = 0;
    private boolean backToFinish(){
        if(BACK==0){
            BACK++;
            Toast.makeText(mActivity,"再按一次退出", Toast.LENGTH_SHORT).show();
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1500);
                        BACK--;
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }).start();
            return false;
        }else if(BACK==1){
            return true;
        }
        return true;
    }

内容很简单,希望对你有所帮助!

时间: 2024-10-17 18:26:18

Android APP 退出方法的相关文章

Android程序退出方法

app退出方法记录: 1.exit System.exit(0); 如果参数为0,表示正常退出:不为0,则表示异常结束程序. 如果首个activity中使用,关闭app程序:否则是返回首个activity效果. 该方法只关闭activity,不会关闭服务. 2.Pid int pid = android.os.Process.myPid(); //获取当前应用程序的PID android.os.Process.killProcess(pid); //杀死当前进程 这种方法退出应用,是会保留某些后

Android App退出检测

app的退出检测是很难的,但是获取app“要退出”的状态就容易多了,退出的瞬间并不是真的退出了,ActivityManager要销毁activity,也需要一些时间和资源的. 先见下面的运行效果:  gif做的比价粗啊, 两个activity的界面就不介绍了,主要是在APP启动的时候开启一个服务,application代码如下: public class MyApplication extends Application { @Override public void onCreate() {

Android之完美退出方法

为什么要写这篇文章? 网上有很多种退出方法,可实际上很多方法都不通用(在某个版本下可用,到了另一个版本就不行),或者方法的实际效果根本就和其描述不符(也不知道那些发帖的人测没测试过). 但我们的需求又确实存在.在某些情况下,我们需要在应用中打开多个Activity,但如果仅仅使用finish()方法就不能在需要的时候达到一次性退出的效果,自己作为一个Android退出问题的受害者,通过良久思考和实际测试,找到了一个比较不错的,在2.1-2.2-2.3版本下都通用的完全退出方法(2.1版本也基本可

Android经典完美退出方法

Android经典完美退出方法,使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解.易于操作,非常不错! AppUtils类(储存每一个Activity,并实现关闭所有Activity的操作) /* * To change this template, choose Tools | Templates * and open the template in the

Android全局退出的两种方法

第一种方法参考<第一行代码>78页 建立一个ActivityCollector类,提供静态方法addActivity,fininshAll(以list为容器) 然后我们建立的Activity都继承一个BaseActivity,在BaseActivity中的oncreate方法中,使用ActivityCollector的addActivity(this), 想要随时全局退出只要调用ActivityCollector.finishAll() 今天在看到另一个和Activity启动模式有关的全局退出

android 彻底退出应用程序在不同API下需要调用的方法

一个程序里new 出了N多个Thread,这样在退出程序的可能不能完全关闭,最后发现,只用finish()方法,有时候不能彻底退出,个人感觉还是要在适当的地方加上:System.exit(0); 1. finish()方法 该方法可以结束当前 Activity,但是如果你的App有很多 Activity 的话,使用该方法显得有点捉襟见肘了. 另外,还有一个方法finishActivity (int requestCode) ,关于这个方法,先看看sdk的api说明吧! view plainpri

Android中退出多个Activity的两个经典方法

这里介绍两种方法:一种把每个activity记住,然后逐一干掉:另一种思路是使用广播. 方法一.用list保存activity实例,然后逐一干掉 上代码: import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.AlertDialog; import android.app.Application; import android.content.Dial

Android程序中有多个Activity时的可全部退出方法

下面是代码.该方法的原理是用一个list记录每次启动的acitivity,在退出时候循环退出改list中保存的acitivity,这样就做到了所有的acitivity完美退出. 先写一个类继承Application package com.zhaoba.service; import java.util.ArrayList; import java.util.List;import android.app.Activity; import android.app.Application;publ

android 安全退出应用程序的几种方法

android 安全退出应用程序的几种方法 正常关闭应用程序: 当应用不再使用时,通常需要关闭应用,可以使用以下三种方法关闭android应用: 第一种方法:首先获取当前进程的id,然后杀死该进程.android.os.Process.killProcess(android.os.Process.myPid())通过这种方式不能将应用程序完全杀死,并且他不会把当前应用应用的Activity的task任务栈清空 第二种方法:终止当前正在运行的Java虚拟机,导致程序终止System.exit(0)