Amdroid双击返回键实现退出应用程序

来源:互联网 发布:java 运行jar 依赖包 编辑:程序博客网 时间:2024/06/05 08:43

该程序是从个人项目中复制出来的, 所以有些方法可以不要。主要看handler和onKeyDown方法

package com.harvin.esn.activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.app.FragmentActivity;import android.view.KeyEvent;import com.harvin.esn.tools.AppUtils;import com.harvin.esn.tools.DialogUtils;import com.harvin.esn.tools.LogUtils;public class BaseActivity extends FragmentActivity {    private final String TAG = "BaseActivity";// 打印日志的标题    private boolean isExit = true;    private static final int HANDLER_IS_EXIT = 1000;    private Handler handler = new Handler() {        public void handleMessage(Message msg) {            switch (msg.what) {            case HANDLER_IS_EXIT:                isExit = true;                break;            }        };    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        AppUtils.getInstance().addActivity(BaseActivity.this);//将actiivty统一管理    }    @Override    protected void onStart() {        super.onStart();        LogUtils.i(TAG, "onStart");    }    @Override    protected void onResume() {        super.onResume();        LogUtils.i(TAG, "onResume");    }    @Override    protected void onPause() {        super.onPause();        LogUtils.i(TAG, "onPause");    }    @Override    protected void onRestart() {        super.onRestart();        LogUtils.i(TAG, "onRestart");    }    @Override    protected void onStop() {        super.onStop();        LogUtils.i(TAG, "onStop");    }    @Override    protected void onDestroy() {        super.onDestroy();        LogUtils.i(TAG, "onDestroy");    }    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        /**         * 实现双击返回键,退出应用程序         * */        if (keyCode == KeyEvent.KEYCODE_BACK) {//判断是否点击返回键            if (isExit) {                isExit = false;//更改判断                DialogUtils.showShortToast(getApplicationContext(), "在按一次退出应用");//提示语                Message msg = new Message();                msg.what = HANDLER_IS_EXIT;                handler.sendMessageDelayed(msg, 2000);//延时2秒发送消息            } else {                AppUtils.getInstance().finish();//销毁所有的Activity                System.exit(0);//退出程序            }            return false;        }        return super.onKeyDown(keyCode, event);    }}
1 0
原创粉丝点击