在开发中会碰到在一个activity中的局部(或者是activity的Fragment中)显示其他的activity 的内容,这时就用到了LocalActivityManager类。
假设这个容器是一个LinearLayout,id是linearContainer, Activity中获取视图:
LinearLayout linearContainer= (LinearLayout) findViewById(R.id.container);
linearContainer.dispatchCreate(savedInstanceState);
实例化LocalActivityManager:
LocalActivityManager local= getLocalActivityManager();
最后把OtherActivity塞进linearContainer里面:
linearContainer.addView((local.startActivity("OtherActivityView", new Intent(this, OtherActivity.class))).getDecorView());
addView是往Layout里动态增加View,别处也会用到。local.startActivity比一般的startActivity多一个String id参数:其实这个String id只是一个标识,自己随便起个不重样名字就好了,作用就是系统看到id一样的activity时会把两个activity当作一个处理。至于最后这个getDecorView()方法,就是把OtherActivity里面的View给调出来。