Android之通过Stack来管理Activity

基本思想是新建一个ActivityManagerUtil类来管理Activity的使用方式,如果需要管理的Activity较多,可以直接在BaseActivity中把Activitypush进去和pop出去,下面贴代码:
1.先把管理类单例化:
private static Stack activityStack;
private static ActivityManagerUtil instance;
private ActivityManagerUtil() {
}
public static ActivityManagerUtil getInstance() {
if (instance == null) {
instance = new ActivityManagerUtil();
}
return instance;
}
2.然后是实例化Stack添加Activity:
public void pushActivity(Activity activity) {
if (activityStack == null) {
activityStack = new Stack();
}
activityStack.add(activity);
}
3.获得当前栈顶Activity和退出栈顶Activity
public Activity currentActivity() {
Activity activity = null;
if (activityStack.size() > 0) {
activity = activityStack.lastElement();
}
return activity;
}

public void popActivity(Activity activity) {
if (activity != null) {
activity.finish();
activityStack.remove(activity);
activity = null;
}
}
4.退出所有Activity
public void popAllActivity() {
while (true) {
Activity activity = currentActivity();
if (activity == null) {
break;
}
popActivity(activity);
}
}
5.在BaseActivity生命周期中这样来:
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
ActivityManagerUtil.getInstance().pushActivity(this);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
L.e(“activity_lifecycle”,this.getClass()+” onDestroy”);
ActivityManagerUtil.getInstance().popActivity(this);
super.onDestroy();
}
好了,就这样了,那个管理类里面如果自己想添加方法,可以自己多多稍微思考下,很简单的。第一篇博客,只能规规矩矩的贴代码的,哈哈,不喜勿喷。后面应该还有新博客更新,因为最近公司要我做webapp方面的,所以涉及的Android知识少,然后时间也多出来了,就写写文章巩固一下。为什么写这个知识点?因为正好有朋友问到类似的问题,所以就拿这个开个头吧。哈哈。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值