基本思想是新建一个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知识少,然后时间也多出来了,就写写文章巩固一下。为什么写这个知识点?因为正好有朋友问到类似的问题,所以就拿这个开个头吧。哈哈。。
Android之通过Stack来管理Activity
最新推荐文章于 2024-04-05 23:30:32 发布