为什么活动类中的生命周期方法使用受保护的访问说明符定义

时间:2013-11-23 11:19:20

标签: java android android-lifecycle

为什么android中的lifeCycle方法的访问说明符为protected


我对Access-specifiers的理解如下 ::

enter image description here


  • 但为什么我们需要将所有生命周期方法都作为 保护
  • 当我覆盖生命周期方法
  • 时,我注意到了这一点
  • 我知道将Activity类的方法作为方法覆盖 Activity class定义为protected
  • 但为什么将它们定义为protected

3 个答案:

答案 0 :(得分:6)

  • 它们是protected,用于在框架包android.app和子类中进行封装。
  • 它们仅由android.app.ActivityManager(同一个包)调用。根据方法实现,如果可以从任何地方任意调用这些方法,事情可能会搞砸。

因此,这是设计的,该设计有助于避免某些概念错误。 如果你真的必须有public方法,只需实现一个并从外部和相应的生命周期方法中使用它。
但是,虽然在这种情况下不推荐,但可以使用protected方法覆盖public方法。

答案 1 :(得分:1)

我在这里定义为什么公共和受保护以及如何运作:

使用public onClick方法非常有用,因为您可以“强制”以编程方式单击某些按钮。一个常见的例子是当用户按下回车键或按下提交按钮时,使代码执行代码。

我认为Android不直接调用Activity。onCreate。请注意,Activity继承自Context (which does have a public constructor).我理解构造函数会触发一些事件发生,onCreate/Pause/Resume/Destroy方法会在适当的时间内部调用到类中。

例如,在创建活动时,必须解析和扩充视图XML文件。这是自动发生的,因此幕后发生的事情是你无法直接控制的。

答案 2 :(得分:1)

不公开,因为这些生命周期方法基本上由SDK内部使用,并不打算被任何其他类调用(您不应该从任何类调用任何地方activity.onResume(),这是自动完成的)。

非私有允许子类运行某些自定义代码。