使用自定义构造函数设置BaseActivity以从子类提供数据

时间:2013-05-30 18:47:45

标签: java android inheritance

我在我的应用中使用BaseActivity来帮助您轻松地使Google Analytics更加轻松。

在我的基本活动中,我会覆盖onStart()onStop()向EasyTracker发送一些内容。我想设置我的代码,以便它需要使用活动的名称调用超类构造函数,以便BaseActivity可以发送正确的数据。

我尝试在BaseActivity中设置一个构造函数,它似乎有效,但我得到的错误是我的主要活动(扩展BaseActivity)层次结构不一致。

我能做些什么来实现这个目标?

1 个答案:

答案 0 :(得分:3)

你不能用构造函数来做这件事。 Android框架实例化了Android组件(ServiceActivityBroadcastReceiverContentProvider)本身,你无法解决这个问题。

我的建议是,您在基本活动中覆盖onCreate(),并让子类从其重写的super.onCreate()方法调用onCreate()。在您的基本活动中,您可以通过调用getClass().getName()来获取子类的名称。