[Android] Android 两次Back键点击退出程序

来源:互联网 发布:回合网络手游 编辑:程序博客网 时间:2024/05/13 15:19

【需求分析】

在应用程序中经常会误操作点击返回键退出程序,现在需要连续两次点击返回键才退出程序,否则只是提示

用户当前按下了返回键,再按一次后就退出程序。


【效果展示】

【实现原理】

记录两次Back键按下的时间戳。如果两个时间戳之间的差值在一个设置的阈值范围内(程序中设置为2s)则

退出App,否则弹出一个Toast告知用户当前Back键被按下,再按一次就退出App.


【代码展示】

import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.Toast;/** * 功能:两次返回键退出App,第一次按下返回键时弹出Toast提示用户是否退出程序 * 作者:lexli * 博客:http://blog.csdn.net/csdn_lexli/article */public class MainActivity extends AppCompatActivity {    private long lastPressTime = 0l;    private int timeExpired = 2000;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    /**     * 两次返回键退出App.实现的核心要素:     *     原理:第一次按下返回键时,弹出提示Toast同时记录当时的时间。     *          如果下一次返回键时间与本次间隔在2s内,则退出App,否则     *          继续两次时间间隔检测     *     注意:这里是完全复写onBackPressed方法,不要调用父类的onBackPressed     *          否则按一下返回键就退出了     */    @Override    public void onBackPressed() {        if (System.currentTimeMillis() - lastPressTime > timeExpired) {            // 两次间隔在expiredTime外,则弹出Toasr提示用户“再按一次退出程序”            Toast.makeText(MainActivity.this, "再按一次退出本程序", Toast.LENGTH_SHORT).show();            lastPressTime = System.currentTimeMillis();        } else {            // 两次间隔在ExpiredTime内,直接退出程序            finish();        }        // 注意,这里不需要调用父类的onBackPressed方法了,否则每次运行到这调用父类的onBackPressed退出程序了        //super.onBackPressed();    }}


0 0
原创粉丝点击