首先定义一个boolean值的变量默认为true,在onStart里设置为true
正常切换时把值设置成false,非正常切换时设置成true并且Toas提示
在onPause里判断
@Override
protected void onPause() {
//若程序进入后台不是用户自身造成的,则需要弹出警示
if(needAlarm) {
//弹出警示信息
Toast.makeText(getApplicationContext(), "应用已进入后台运行", Toast.LENGTH_SHORT).show();
}
super.onPause();
}
监听返回键,把boolean设值false
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
L.e("onKeyDown.keyCode:" + keyCode);
//判断程序进入后台是否是用户自身造成的(触摸返回键或HOME键),是则无需弹出警示。
if((keyCode==KeyEvent.KEYCODE_BACK || keyCode==KeyEvent.KEYCODE_HOME || keyCode==KeyEvent.KEYCODE_MENU) && event.getRepeatCount()==0){
needAlarm = false;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
L.e("onKeyUp.keyCode:" + keyCode);
//判断程序进入后台是否是用户自身造成的(触摸返回键或HOME键),是则无需弹出警示。
if((keyCode==KeyEvent.KEYCODE_BACK || keyCode==KeyEvent.KEYCODE_HOME || keyCode==KeyEvent.KEYCODE_MENU) && event.getRepeatCount()==0){
needAlarm = false;
}
return super.onKeyUp(keyCode, event);
}