1.ActivityGroup的核心就是繼承該類,能夠通過getLocalActivityManager()得到一個LocalActivityManager
如,LocalActivityManager am= getLocalActivityManager();
2.然后通過LocalActivityManager通過startActivity(String id, Intent intent),可以與指定的Actiivty綁定,並且返回一個Window。LocalActivityManager可以同時管理多個Activity
Window window1 = am.startActivity("Module1", newIntent(TestView.this, ModuleView1.class));
Window window2 = am.startActivity("Module2", newIntent(TestView.this, ModuleView2.class));
3.然后Window可以通過getDecorView()方法,返回一個View,然后通過與指定容器的addView(View)方法,實現不同的效果
View view1 = window1.getDecorView()
View view2 = window2.getDecorView()
實際中多用簡寫形式,如,
container是ScrollView的一個實例
container.removeAllViews(); //移除其他所有子視圖
container.addView(getLocalActivityManager().startActivity(
"Module2",
new Intent(TestView.this, ModuleView2.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) )
.getDecorView());
注意:
container.removeAllViews():表示在顯示該視圖之前,先移除其他所有視圖.
Intent.FLAG_ACTIVITY_CLEAR_TOP:如果在當前Task中,有要啟動的Activity,那么把該Acitivity之前的所有Activity都關掉,並把此Activity置前以避免創建Activity的實例
這種方式具有很大的靈活性,常用的就是實現TabHost分頁效果,但很好的避免的TabHost的缺點,如title等