【Android】双击返回键,退出android应用程序 双击两次退出程序提示功能 三种实现方法

来源:互联网 发布:linux $ 编辑:程序博客网 时间:2024/05/22 07:59

作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985

 QQ986945193 微博:http://weibo.com/mcxiaobing

【Android】双击返回键,退出android应用程序  双击两次退出程序提示功能 三种实现方法

 最下面有项目源代码下载地址。当然,还是希望大家掌握这个小功能。

package davidsystemapp.qq986945193.com.davidsystemapp;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.widget.Toast;import java.util.Timer;import java.util.TimerTask;/** * @author :程序员小冰 * @GitHub: https://github.com/QQ986945193 * @新浪微博 :http://weibo.com/mcxiaobing * @CSDN博客: http://blog.csdn.net/qq_21376985 * @交流Qq :986945193 */public class MainActivity extends AppCompatActivity {    private Toast toast;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        toast = Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT);    }    /**     * 双击两次退出程序提示  第一种方式     */   /* boolean isState = true;//设置双击退出的变量    public void onBackPressed() {        if (isState) { //isState初始值为true            isState = false;            Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();            new Timer().schedule(new TimerTask() {                @Override                public void run() {                    // TODO Auto-generated method stub                    isState = true;                }            }, 2000);        } else {            finish();        }    }*/    /**     * 双击两次退出程序提示  第二种方式     */    public boolean onKeyDown(int keyCode, KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_BACK) {            quitToast();            return true;        }        return super.onKeyDown(keyCode, event);    }    private void quitToast() {        if (null == toast.getView().getParent()) {            toast.show();        } else {            finish();//            System.exit(0);        }    }    /**     * 双击两次退出程序提示  第三种方式     * <p/>     * https://github.com/QQ986945193     */    // 1.on..2.开发者实现 3.系统调用    // 条件 :点击物理键盘或者软件盘    // int keyCode按键编号  /*  long[] times = new long[2];    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        // TODO Auto-generated method stub        if (keyCode == KeyEvent.KEYCODE_BACK) {            // ① 找出回调函数            // ② 点击时间 time1 time2            // ③ 时间 间隔 <2000 退出            // ④ 提示再点一次            times[0] = times[1];            times[1] = System.currentTimeMillis();            if (times[1] - times[0] < 2000) {                finish();            } else {                Toast.makeText(getBaseContext(), "再点一次退出", Toast.LENGTH_SHORT).show();            }            return true;// 消费事件        }        return super.onKeyDown(keyCode, event);    }*/}


源代码项目下载地址(欢迎star  fork):https://github.com/QQ986945193/DavidSystemApp


1 0