首先,创建一个类CloseActivitysUtil.java:
/**
* 关闭所有Activity
* @author weizhi
* @version 1.0
*/
public class CloseActivitysUtil {
private static LinkedList<Activity> acys = new LinkedList<Activity>();
//添加activity
public static void add(Activity acy){
acys.add(acy);
}
//关闭所有的activity
public static void close(){
Activity acy;
while (acys.size() != 0){
//poll()方法检索并移除此列表的头元素(第一个元素)
acy = acys.poll();
if (!acy.isFinishing()){
acy.finish();
}
}
}
}
然后在每个需要关闭的Activity中添加:
CloseActivitysUtil.add(this);
如在MainActivity.java中添加:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CloseActivitysUtil.add(this);
... ...
}
... ...
}
最后在需要关闭的地方调用:
CloseActivitysUtil.close();
如在点击返回键的时候关闭所有Activity:
/**
* 返回键点击事件
* @param keyCode
* @param event
* @return
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//点击返回键关闭所有Activity,退出软件
if(keyCode == KeyEvent.KEYCODE_BACK ){
CloseActivitysUtil.close();
}
return super.onKeyDown(keyCode, event);
}