该程序是从个人项目中复制出来的, 所以有些方法可以不要。主要看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);
}
}