A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李龙 黑马帝   /  2011-8-2 13:07  /  2168 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在调用了很多Activity情况下,我想关闭其中一些(全部也可以),但我发现好像只有finish()的方法跟关掉Activity有关,只能关掉一个,我怎么才能实现同时关掉很多个Activity的方法呢?是不是要用什么方法去记录一些打开着的Activity?这该怎么做?

3 个回复

倒序浏览
首先可以创建一个类用来存储Activity 比如 MainServic.java
类里面可以定义一个LIst集合存储Activity
public static ArrayList<Activity> allActivity = new ArrayList<Activity>();用来 保存所有Activity
然后每打开一个Activity在onCreate回调函数通过MainService.allActivity.add(this); 对Activity进行添加
退出的时候,迭代finish
for (Activity ac : allActivity) {
        ac.finish();
}
Activity存储就类似于堆栈的存储 退出是有很多种的,我就懂这种了,可以百度一下,如果有一个应用程序在清理内存我这个方法是不奏效的
[ 本帖最后由 王士铭 于 2011-08-03  00:00 编辑 ]
回复 使用道具 举报
黑马网友  发表于 2011-8-4 01:00:04
藤椅
Activity是一个独立的组件,完全有自我管理的能力。如果你想销毁一个Activity,那么必是源于一定的事件而触发,接着在回调函数中可以关闭它。此外,父Activity可以关闭由其开启的子Activity。但是你总不能在一个与Activity豪无关系的地方无缘无故的关闭它,因为在毫不相干的地方,你无法知道Activity的状态。假如一个Activity正在等待用户的操作,你这时就突然把它关了,这像什么话。
  批量关闭Activity,纯粹没事找事嘛!
回复 使用道具 举报

回复 藤椅 的帖子

父Activity可以关闭由其开启的子Activity

这个怎么关?我只会由子Activity关闭父Activity
跟这里学的
http://hi.baidu.com/androidyjc/blog/item/cebd3b074cd2523f6159f35f.html
http://hi.baidu.com/androidyjc/b ... f5080500e92858.html

但是你总不能在一个与Activity豪无关系的地方无缘无故的关闭它,因为在毫不相干的地方,你无法知道Activity的状态。

这个可以用Intent 使Activity间相互关联、调用、传递参数
Intent intent = new Intent(MainActivity.this, NewActivity.class)

这么晚还帮我解答问题,谢谢了!
另外,本人android新手,api大多是英文的,很多地方读不懂,问的问题有些可能显得很无知,就像我朋友不懂电脑说买1T的内存一样,我绝对不感觉他在瞎胡闹,因为我知道他想说的其实是硬盘!只是其所掌握的知识没有令其准确表达到罢了!
[ 本帖最后由 李龙 于 2011-08-04  12:21 编辑 ]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马