-
ActivityGroup
相关
--getL
ocalActivityManager()
Act
ivityGroup
简介
tyGroup
的核心就是继承了该
类,能够通过
getLocalAct
ivityManager()
得到一个
LocalActiv
ityManager
如
,LocalActivityMan
ager
am=
getLoca
lActivityManager();2.
然后通过
Loc
alActivityManager
通过
startActi
vity(String id, Intent intent),
可以与指定的
p>
Actiivty
绑定,
并且返回一个
p>
Window
。
LocalActivit
yManager
可以同时管理多个
ActivityWind
ow window1 =
ctivity(
));
Window window2 =
ctivity(
newIntent(, ));3.
然后<
/p>
Window
可以通过
getDecor
View()
方法,
返回一个
View
,
然后通过与指
定容器的
addVie
w(View)
方法
,
实现不同的效果
View view1 =
orView()
View view2 = orView()
实际中多用简写
形式
,
如
,
container
是
ScrollView
< br>的一个实例
AllViews();
//
移除其他所有子视图
w(getLocalActivityManager().startActivity(
new Intent(,
)
p>
.addFlags(_ACTIVI
TY_CLEAR_TOP)
)
p>
.getDecorView());
注意
:
AllViews():
表示在显示该视图之前,先移除<
/p>
其他所有视图
.
_ACTIVITY_
CLEAR_TOP:
如果在当前
Task
中,
有要启动的
Activity
,
那么把该
Acitivity
之前的
所有
Activity
都关掉,并把此
Activity
置前以避免创建
Activity
的实例
这种方式具有很大的灵活性,常用的就是
实现
TabHost
分页
效果,但很好
的避免的
TabHost
的缺点,如
t
itle
等
如果已经启动了四个
p>
Activity
:
A
,
B
,
C
和
D
。在
D
Activity
里,我们要跳到
B
Activity
,同时希望
C finish
掉,可以在
startActivity(intent)
里的
intent
里添加
flag
s
标记,如下所示:
[java] view plaincopyprint?
Intent intent = new
Intent(this, );
gs(_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Intent intent = new Intent(this, );
gs(_ACTIVITY_CLEAR_TOP);
startActivity(intent);
这样启动
B Activity
,就会
把
D
,
C
都<
/p>
finished
掉,如果你的
B Ac
tivity
的启动模式是默认的(
multiple
)
,则
B Acti
vity
会
finished
掉,再启
动一个新的
Activity B
。
如果不想重新
再创建一个新的
B
Activity
,则在上面的代码里再加上:
[java] view
plaincopyprint?
gs(_ACTIVITY_SINGLE_TOP);
gs(_ACTIVITY_SINGLE_TOP);
这样
B Activity
就会再创建
一个新的了,
而是会重用之前的
B
Activity
,同时调用
B Activity
的
onNewIntent()
方法。
问题:
多
activity
中退出整个程序,例如从
p>
A->B->C->D
,
这时我需要从
D
直接退出程序。
网上资料:
{
finish()
p>
和
system(0)
都只能退出单个
p>
activity
。
杀进程等的等方
式都不行
~~~