1.前言

今天碰到一个问题,我的一个activity需要加载别人的另外一个activity,可能你会说用fragment嘛,但是我们两个属于不同的业务部门,各自平行开发,他不可能单独为了写个fragment,但是我要显示他activity的内容,这时就用到了LocalActivityManager类。

2.使用步骤

1)在我的activity中初始化一个父容器

LinearLayout linear= (LinearLayout) findViewById(R.id.linear);

2)实例化LocalActivityManager

LocalActivityManager local= getLocalActivityManager();
local.dispatchCreate(savedInstanceState);

3)最后把其他人的Activity内容加入到linear里面:

View mDiscoverView = lam.startActivity("myactivity", intent1)
                    .getDecorView();
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.MATCH_PARENT);
linear.addView(mDiscoverView,lp);

通过getDecorView()方法,把别人Activity里面的View给获取到,通过addview成功把其他的activity内容加入到自己的activity的某个布局里面。lam.startActivity多了一个id参数:这个参数只是一个标识,类似于tag标签,作用就是系统看到id一样的activity时会把两个activity当作一个处理。


如有错误欢迎指出来,一起学习。
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐