点击一次的返回键的时候:
//点击返回键到登录界面
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
//跳转页面等逻辑操作
startActivity(new Intent(this, LoginActivity.class));
//结束本页
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
点击两次返回键的时候:
private boolean mBackKeyPressed = false;//记录是否有首次按键
public void onBackPressed() {
if (!mBackKeyPressed) {
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
mBackKeyPressed = true;
new Timer().schedule(new TimerTask() {//延时两秒,如果超出则清除第一次记录
@Override
public void run() {
mBackKeyPressed = false;
}
}, 2000);
} else {
//结束之前所有的Activity
ActivityCollector.finishall();
}
}
结束所有的Activity时的活动管理器:
package com.fb.hckjfb.utils;
import android.app.Activity;
import java.util.ArrayList;
import java.util.List;
/**
* 活动管理器类
*/
public class ActivityCollector {
public static List<Activity> activities = new ArrayList<>();
public static void addActivity(Activity activity){
activities.add(activity);
}
public static void removeActivity(Activity activity){
activities.remove(activity);
}
public static void finishall(){
for (Activity activity : activities) {
if (!activity.isFinishing()){
activity.finish();
}
}
}
}