Android-父活动应确定子活动对其的调用

Android-父活动应确定子活动对其的调用,android,android-layout,android-emulator,android-widget,android-ndk,Android,Android Layout,Android Emulator,Android Widget,Android Ndk,我的项目中有两个活动,比如活动A和活动B。A和B都扩展了相同的超类:BaseActivity。 我们知道,在这种情况下,假设活动A被打开,则调用超类方法onCreate(),然后活动A的onCreate()随之启动 在父BaseActivity类的onCreate()方法中,如何确定已启动了哪个子活动?我认为不应该这样做。 就我所记得的扩展思想而言,超类方法应该只包含通用代码。在子类中加入不同的代码将更容易,而且我认为更合适 您可以在parent onCreate()中初始化一些值,然后在chi

我的项目中有两个活动,比如活动A和活动B。A和B都扩展了相同的超类:BaseActivity。
我们知道,在这种情况下,假设活动A被打开,则调用超类方法onCreate(),然后活动A的onCreate()随之启动


在父BaseActivity类的onCreate()方法中,如何确定已启动了哪个子活动?

我认为不应该这样做。 就我所记得的扩展思想而言,超类方法应该只包含通用代码。在子类中加入不同的代码将更容易,而且我认为更合适


您可以在parent onCreate()中初始化一些值,然后在childs中重新设置它。

我建议使用另一种方法。基本上不做继承。用构图代替。请记住,您认为需要扩展的大多数操作实际上只需要引用上下文。活动从上下文扩展。因此,实际上,您可以在任何引用活动上下文的类中提供大多数基本功能。根本不需要做继承

因此,如果您想在ActivityA和ActivityB之间共享一些功能,只需将其放在HelperC中即可

HelperC.someOperation(上下文c,其他参数)


HelperC可以做一些基本活动可以做的任何事情。最终,基本活动将永远不会以任何方式存在。它将始终是实例化版本A或B

也请在谷歌上研究合成与继承,了解合成的优势。它真的有一对一的关系。例如,is-a-doctor vs.is-a-person具有医生角色。has-a更具灵活性和动态性。