Android - 父活动应确定子活动调用它
Posted
技术标签:
【中文标题】Android - 父活动应确定子活动调用它【英文标题】:Android - Parent activity should determine what child activity had called it 【发布时间】:2012-06-10 23:56:25 【问题描述】:我的项目中有 2 个活动,比如说活动 A 和活动 B。A 和 B 都扩展同一个超类:BaseActivity。 我们知道,在这种情况下,假设如果打开了 Activity A,则调用超类方法 onCreate(),然后是 Activity A 的 onCreate()。
在BaseActivity父类的onCreate()方法中,如何判断哪个子Activity启动了?
【问题讨论】:
【参考方案1】:我会建议一种不同的方法。基本上不做继承。改用合成。请记住,您认为需要扩展的大多数操作实际上只需要对上下文的引用。活动从上下文延伸。所以实际上,您可以在任何引用活动上下文的类中提供大多数基本功能。完全不需要继承。
因此,如果您想在 ActivityA 和 ActivityB 之间共享某些功能,只需将其放在 HelperC 中
HelperC.someOperation(Context c, otherParams)
HelperC 可以做一些基本活动可以做的任何事情。最终,基本活动将永远不会存在。它将始终是实例化版本 A 或 B
【讨论】:
另外,请在 Google 上研究组合与继承,了解组合的优势。它真的有一个与是一个关系。例如 is-a-doctor vs. is-a-person that has-a-doctor-role。 has-a 更加灵活和动态。【参考方案2】:我认为你不应该这样做。 据我记得扩展的想法,超类方法应该只包含通用代码。将不同的代码放在子类中会更容易,而且我认为更合适。
你可以在parent onCreate()中初始化一些值,然后在childs'中重新设置。
【讨论】:
以上是关于Android - 父活动应确定子活动调用它的主要内容,如果未能解决你的问题,请参考以下文章
在 Angular 2 中,如何使用父路由确定子路由中的活动路由?