android——退出程序的功能,关闭所有本程序界面

         程序退出功能,也就是安全退出已调用多个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 activitys = new ArrayList();
	
	/**
	 * 向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源码

你可能感兴趣的:(android)