Android - Activity Constructor vs onCreate

我知道Android有特定的生命周期,应该被覆盖并用于初始化,但是在构造函数中究竟发生了什么?是否有任何情况下你可以/应该重写构造函数,或者你不应该碰它?ActivitiesonCreateActivity

我假设永远不应该使用构造函数,因为对的引用没有被完全清理(从而阻碍了垃圾收集器),这就是为此目的而存在的。这是正确的吗?ActivitiesonDestroy


答案 1

我想不出任何好的理由在构造函数中做任何事情。您从不直接构造活动,因此不能使用它来传递参数。通常,只需在 onCreate 中执行操作即可。


答案 2

正如Gili的评论所说,将内容放入构造函数中的一个很好的理由是使用最终字段。

但是,如果您在构造函数中初始化事物,那么对象的生存期会更长一些,尽管我不认为太多,因为不久之后就会调用。onCreate

尽管这与我的理想背道而驰,但我确实避免使用构造函数来初始化活动成员,并依赖和依赖我的应用正在处理的资源。onResume()onPause()

因为我通常用它来做到局部变量的视图映射。虽然android注释已经为我做到了这一点,所以我很少为我的活动提供一种方法。不过,我仍然在服务中使用它。onCreate()onCreate()

但是,如果您查看成员,则可能正在初始化

  • 他们将有一个“关闭”方法,您必须在适当的时间调用该方法(onResume或onPause)

  • 它们将是视图的一部分,这意味着它需要被初始化,然后onCreate需要被调用

  • 它们是常量,无论如何都不需要放在构造函数中,只需静态 final 就可以了。这包括可由静态块初始化的“画图”和“路径”常量