程序退出功能,也就是安全退出已调用多个Activity的程序,将程序打开的页面一次性全部关闭。
在网上查android退出程序的方式有很多,这里介绍一种自己定义一个继承activity的基类,然后其他自己的activity继承自定义基类,在基类中实现关闭程序的功能。
1、首先创建一个控制activity的工具类:
package com.wang.applicationback.utils;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
/**
* Activity活动管理工具
* @author HeJW
*
*/
public class ActivityCollector {
public static List<Activity> activitys = new ArrayList<Activity>();
/**
* 向List中添加一个活动
* @param activity 活动
*/
public static void addActivity( Activity activity ){
activitys.add(activity);
}
/**
* 从List中移除活动
* @param activity 活动
*/
public static void removeActivity( Activity activity ){
activitys.remove(activity);
}
/**
* 将List中存储的活动全部销毁掉
*/
public static void finishAll(){
for ( Activity activity : activitys ) {
if ( !activity.isFinishing() ) {
activity.finish();
}
}
}
}
2、创建自定义的继承activity类的基类:
package com.wang.applicationback.base;
import com.wang.applicationback.utils.ActivityCollector;
import android.app.Activity;
import android.os.Bundle;
public class BaseActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityCollector.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
ActivityCollector.removeActivity(this);
}
}
3、主要功能代码就已经完成了,在以后写的activity界面中,要让自己的activity继承自定义的基类,如:
package com.wang.applicationback;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import com.wang.applicationback.base.BaseActivity;
public class Activity1 extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
}
}
4、当需要“退出程序”这个功能的时候,只需要用如下代码就可:
ActivityCollector.finishAll();
附上demo源码