LocalActivityManager类用来管理activity,通过startActivity(string Tag,Intent intent)方法获取当前windows对象在调用getDecorView()方法获取当前Activity对应的VIew,在添加的时候会遇到下面的问题
Caused
by
:
java
.
lang
.
IllegalStateException
:
Activities
can
‘t be added until the containing group has been created.
解决办法:
LocalActivityManager
mLocalActivityManager
;
oncreate
()方法实例化
mLocalActivityManager
=
new
LocalActivityManager
((
Activity
)
context
,
true
);
2
、在
oncreate
,
onresume
,
onpause
方法中分别加入如下代码:
oncreate
()————–
mLocalActivityManager
.
dispatchCreate
(
arg0
);参数
arg0
为
oncreate
方法的形参
onpause
()————–
mLocalActivityManager
.
dispatchPause
(
isFinishing
());传入
true
onresume
()————–
mLocalActivityManager
.
dispatchResume
();
LocalActivityManager
的使用方法
我是自己封装了一个方法LocalActivityManager的使用方法我是自己封装了一个方法
<pre name="code" class="java"><span style="font-size:18px;">localActivityManager在oncreate中创建
localActivityManager = new LocalActivityManager(MainActivity.this, true);
</span>
private void setActivity(Class<?> activity){
Intent intent = new Intent(MainActivity.this,
activity);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@SuppressWarnings(“deprecation”)
View v = localActivityManager.startActivity(“one”,
intent).getDecorView();
layout_fram.removeAllViews();
layout_fram.addView(v);
}
在需要的位置调用此方法 其中参数 是activity.class
layout_fram是xml文件中的布局见下文
<FrameLayout
android:id=”@+id/group_layout”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:layout_weight="1" >
</FrameLayout>