效果图:
常见应用通常有双击退出应用的功能:
但是一般都是放在主页MainActivity中:
在MainActivity的onBackPress()方法中:
private long currentBackPressedTime=0;
@Override
public void onBackPressed() {
if (System.currentTimeMillis() - currentBackPressedTime > 2000) {
UtilsToast.toast("再按一次返回键退出程序", mContext);
currentBackPressedTime = System.currentTimeMillis();
} else {
//退出应用的方法
UtilsExitApplication.getInstance().exit(this);
}
}
注意:MainActivity的onBackPress()方法中不能调用super.onBackPressed();
#2 定义管理Activity的Application
public class UtilsExitApplication extends Application {
private List<Activity> list = new ArrayList<Activity>();
private static UtilsExitApplication ea;
private UtilsExitApplication() {}
public static UtilsExitApplication getInstance() {
if (null == ea) {
ea = new UtilsExitApplication();
}
return ea;
}
/**
*添加activity
*/
public void addActivity(Activity activity) {
list.add(activity);
}
/**
* 全部退出
* @param context
*/
public void exit(Context context) {
for (Activity activity : list) {
activity.finish();
}
//友盟统计
MobclickAgent.onKillProcess(context);
System.exit(0);
}
/**
* 退出后 重新启动 新的activity时使用
* @param context
*/
public void exit2(Context context) {
for (Activity activity : list) {
activity.finish();
}
}
}
#3 在Activity的onCreate方法中将当前Activity添加到应用的管理中去:
UtilsExitApplication.getInstance().addActivity(this);