android activity管理,android Activity管理器

/**

* @ClassName: ActivityTaskManager

* @Description: TODO(Activity管理器)

* @author lhn

* @date 2016-4-15 上午10:34:10

*/

public class ActivityTaskManager {

// 创建ActivityTaskManager

private static ActivityTaskManager activityTaskManager = null;

// 创建activity管理Map

private HashMap activityMap = null;

/**

* @Description:返回Activity管理器的唯一实例对象(采用单例的实现模式)

* @return ActivityTaskManager(Activity管理器的唯一实例对象)

*/

public static synchronized ActivityTaskManager getInstance() {

// synchronized方法声明时使用,放在范围操作符(public等)之后,返回类型声明(void等)之前.

// 这时,线程获得的是成员锁,即一次只能有一个线程进入该方法,其他线程要想在此时调用该方法,只能排队等候,

// 当前线程(就是在synchronized方法内部的线程)执行完该方法后,别的线程才能进入.

if (activityTaskManager == null) {

activityTaskManager = new ActivityTaskManager();

}

return activityTaskManager;

}

/**

* @Description:向Activity管理器中添加Activity

* @param String

* actName(Activity的名称) Activity activity(要存入的Activity)

* @return void

*/

public void addActivity(String actName, Activity activity) {

// 先判断是否已经存在这个activity

if (!activityMap.containsKey(actName)) {

// 没有存在放入该activity

activityMap.put(actName, activity);

} else {

// 已经存在,则结束要存入的activity

activity.finish();

}

}

/**

* @Description 得到保存在管理器中的Activity对象。

* @param String

* actName(Activity的名称)

* @return Activity

*/

public Activity getActivity(String name) {

return activityMap.get(name);

}

/**

* @Description 返回管理器的Activity是否为空。

*

* @return 当且当管理器中的Activity对象为空时返回true,否则返回false。

*/

public boolean isEmpty() {

return activityMap.isEmpty();

}

/**

* @Description 返回管理器中Activity对象的个数。

*

* @return 管理器中Activity对象的个数。

*/

public int size() {

return activityMap.size();

}

/**

* @Description:removeActivity将不用的Activity移除

* @param String

* actName(Activity的名称)

* @return void

*/

public void removeActivity(String actName) {

// 得到该Activity的实例

Activity activity = activityMap.get(actName);

// 如果不为null,则结束掉该activity

if (activity != null)

activity.finish();

// 在activityMap中移除

activityMap.remove(actName);

}

/**

* @Description:finishAll结束掉所有Activity

* @return void

*/

public void finishAll() {

// 遍历所有的Activity找到后执行finish

for (String actName : activityMap.keySet()) {

Activity activity = activityMap.get(actName);

if (!activity.isFinishing()) {

activity.finish();

}

}

// 完全退出app,否则还有进程在后台

System.exit(0);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值