activitygroup(使用ActivityGroup管理Activity)

发布时间:2025-12-10 19:39:29 浏览次数:2

使用ActivityGroup管理Activity-

使用ActivityGroup管理Activity虽然google已经不推荐使用ActivityGroup来管理Activity了,但

虽然google已经不推荐使用ActivityGroup来管理Activity了,但还是了解一下其工作原理,方便接下来的工作。


首先,建立一个ContainerActivity继承ActivityGroup,用来管理Activity。

public class ContainerActivity extends ActivityGroup {private LocalActivityManager localActivityManager;private Intent intent = new Intent();public LinearLayout linear;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.container_activity);linear = (LinearLayout) findViewById(R.id.linear1);localActivityManager = this.getLocalActivityManager();}}

是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活CLion DataGrip DataSpell dotCover dotMemory dotTrace GoLand PhpStorm PyCharm ReSharper ReShaC++ Rider RubyMine WebStorm 全家桶 刷新

【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…


布局文件就一个LinearLayout


<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:andro    android:layout_width="match_parent"    android:layout_height="match_parent" >        <LinearLayout        android:        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:layout_marginBottom="50dp"        android:gravity="top"        android:orientation="vertical" >    </LinearLayout>    </RelativeLayout>

接下来,我们新建一个ActivityManager类来管理Activity


public class ActivityManager {public static ArrayList<View> viewsStack = new ArrayList<View>();public static void backToPrevious(ContainerActivity parent) {viewsStack.remove(viewsStack.size() - 1);parent.linear.removeAllViews();parent.linear.addView(viewsStack.get(viewsStack.size() - 1));}}

注意:我们的ContainerActivity里面什么都没有,新建HomeActivity,并添加布局文件。


<LinearLayout xmlns:andro    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="20dp"        android:text="@string/hello_world" /> </LinearLayout>

HomeActivity里面就一个TextView,然后我们在ContainerActivity中添加代码,如下:
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.container_activity);linear = (LinearLayout) findViewById(R.id.linear1);localActivityManager = this.getLocalActivityManager();intent.setClass(ContainerActivity.this,HomeActivity.class);newActivity(intent);}public void newActivity(Intent intent) {intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);linear.removeAllViews();View view = localActivityManager.startActivity("subActivity", intent).getDecorView();linear.addView(view);ActivityManager.viewsStack.clear();ActivityManager.viewsStack.add(view);}

运行,可以看到,HomeActivity中的内容已经被添加到ContainerActivity中去了。
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477