在Android的基本App模块中获取对按需功能模块MainActivity类的引用

问题描述

我有以下设置可用于另一个项目,但不适用于当前项目。

在上一个项目中,我使用构造函数通过xml初始化来创建SurfaceView类 公共MySurface(上下文上下文,AttributeSet属性,以下是一些代码

class MySurface extends SurfaceView{

static Handler yes;

MySurface(Context context,AttributeSet attrs) {
 //this makes sure is loaded when the main layout is inflated
 ... 
 yes = MainActivity.yes;  //another handler inside the MainActivity
//everything works fine with this set-up in my prevIoUs project!    

}

现在在我的新项目中,我遵循相同的设置,但是类MySurface属于按需模块 当它像上面一样初始化时,Logcat读取MainActivity.yes为null

之所以这样做,是因为在先前的项目中,整个主要活动布局都已加载,并且处理程序yes已经初始化。

但是,在该项目中,一旦用户下载了按需功能包括加载MySurface的布局),则处理程序是似乎为空。

因此,布局传递正发生在初始化Handler之前。 我需要反过来。

我重写onWindowFocusChange(),该函数对按需功能的整个mainactivity布局进行requestLayout。但 当再次进行布局传递时,Logcat仍然说Handler是null。

我认为,一旦onWindowFocusChange()被系统调用,所有字段都将初始化。我不知道为什么在调用requestLayout()(INSIDE ONWINDOWFOCUSCHANGE)并读取Logcat之后,它仍然显示Handler yes仍然为空

我所知道的可行方法是,是否获得对基本App模块的MainActivity中的按需功能模块mainactivity类的引用。但是按需功能模块的包名称与基本App模块的包名称不同。 如何获取对按需功能模块mainactivity类的引用,以便在仍位于基本App模块内部时可以在此类中调用方法

关于在初始化处理程序“是”后如何初始化MySurface类的任何建议。

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)