建立一个Activity池,可以随时随地退出程序

如果目前你手机的界面还停留在ThirdActivity,你会发现当前想退出程序是非常不方便的,需要连按三次back键才行。按Home键只是把程序挂起,并没有退出程序。其实这个问题就足以引起你的思考,如果我们的程序需要一个注销或者退出的功能该怎么办呢?必须要有一个随时随地都能退出程序的方案才行。

其实解决思路也很简单,只需要用一个专门的集合类对所有的活动进行管理就可以了,下面我们就来实现以下。

新建一个ActivityCollector类作为活动管理器,代码如下:

/**
 * 
 */package com.littleRich.weixin;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;

/** 
 * @author: littleRich
 * @date: 2015-8-13 下午10:32:23 
 * @version 1.0 
 * @parameter  
 * @since  
 * @return  
 */

public class ActivityCollector {
	
	/**
	 * 在活动管理器中,我们通过一个List来暂存活动
	 */
	public static  List<Activity> activities = new ArrayList<Activity>();
	
	/**
	 * 向List中添加一个活动
	 * @param activity
	 */
	public static void addActivity(Activity activity){
		activities.add(activity);
	}
	
	/**
	 * 从List中移除活动
	 * @param activity
	 */
	public static void removeActivity(Activity activity){
		activities.remove(activity);
	}
	
	/**
	 * 将List中存储的活动全部都销毁掉
	 */
	public static void finishAll(){
		for (Activity activity : activities) {
			if(!activity.isFinishing()){
				activity.finish();
			}
		}
	}
	
}


接下来在每个Activity中的onCreate()方法中调用addActivity()方法,表明将当前正在创建的活动添加到管理器里。并在onDestroy()中调用removeActivity(),表明将一个马上要销毁的活动从活动管理器中移除。

具体代码如下:

/**
 * 
 */package com.littleRich.weixin;

import android.app.Activity;
import android.os.Bundle;

/** 
 * @author: littleRich
 * @date: 2015-8-13 下午10:51:42 
 * @version 1.0 
 * @parameter  
 * @since  
 * @return  
 */

public class EveryActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		ActivityCollector.addActivity(this);
	}
	
	@Override
	protected void onDestroy() {
		super.onDestroy();
		ActivityCollector.removeActivity(this);
	}
}


从此以后,不管你想在什么地方退出程序,只需要调用ActivityCollector.finishAll()方法就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值