先写个退出activity的类:
package com.dzj.myapplication.tuichu;
import android.app.Activity;
import android.app.Application;
import java.util.ArrayList;
import java.util.List;
/**
* Created by admin on 2017/11/16.
*/
public class Tuichu extends Application {
public static List<Object> activitys = new ArrayList<Object>();
private static Tuichu instance;
//获取单例模式中唯一的MyApplication实例
public static Tuichu getInstance() {
if (instance == null)
instance = new Tuichu();
return instance;
}
// 添加Activity到容器中
public void addActivity(Activity activity) {
if (!activitys.contains(activity))
activitys.add(activity);
}
// 遍历所有Activity并finish
public void destroy() {
for (Object activity : activitys) {
((Activity) activity).finish();
}
System.exit(0);
}
}
要想实现结束所有的activity,需要在每个activity的Java代码中添加:
Tuichu.getInstance().addActivity(this);
然后在事件中使用引用
Tuichu.getInstance().destroy();
下面为双击退出代码:
private long mPressedTime = 0;//定义按退出程序键时间差
@Override
public void onBackPressed() {
long mNowTime = System.currentTimeMillis();//获取第一次按键时间
if ((mNowTime - mPressedTime) > 2000) {//比较两次按键时间差
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();
mPressedTime = mNowTime;
} else {
Tuichu.getInstance().destroy();//退出程序
}
}