Java 为什么活动类中的生命周期方法是用受保护的访问说明符定义的 为什么android中的生命周期方法具有受保护的访问说明符?

Java 为什么活动类中的生命周期方法是用受保护的访问说明符定义的 为什么android中的生命周期方法具有受保护的访问说明符?,java,android,android-lifecycle,Java,Android,Android Lifecycle,我对访问说明符的理解如下所示: 但是为什么我们需要把所有的生命周期方法都作为 保护 我在重写生命周期方法时注意到了这一点 我知道把活动课的方法当作课堂上的方法 活动类已定义受保护 但为什么它们被定义为受保护的 我在这里定义为什么是公共的和受保护的,以及它是如何工作的: 使用public onClick方法很有用,因为可以通过编程“强制”单击某些按钮。一个常见的例子是,当用户按下enter键或Submit按钮时,执行相同的代码 我认为Android不会直接调用活动。onCreate。请注意

我对访问说明符的理解如下所示:


  • 但是为什么我们需要把所有的生命周期方法都作为 保护
  • 我在重写生命周期方法时注意到了这一点
  • 我知道把活动课的方法当作课堂上的方法
    活动类
    已定义
    受保护
  • 但为什么它们被定义为受保护的


我在这里定义为什么是公共的和受保护的,以及它是如何工作的:

使用
public onClick
方法很有用,因为可以通过编程“强制”单击某些按钮。一个常见的例子是,当用户按下enter键或Submit按钮时,执行相同的代码

我认为Android不会直接调用活动。
onCreate
。请注意,活动继承自
上下文(它确实有一个公共构造函数)。
据我所知,构造函数会触发一些事件发生,而
onCreate/Pause/Resume/Destroy方法会在适当的时间在类内部调用

例如,在创建活动时,必须对视图XML文件进行解析和膨胀。这是自动发生的,所以在幕后发生了一些你无法直接控制的事情。

  • 它们用于在框架包和子类中进行封装
  • 它们只能由(相同的包)调用。根据方法实现的不同,如果可以从任何地方任意调用这些方法,事情可能会变得一团糟
因此,这是通过设计实现的,设计有助于避免某些概念错误。 如果您确实必须有一个
public
方法,只需实现一个,并在相应的生命周期方法内外使用它。

但是,尽管在这种情况下不建议使用
public
方法来覆盖
protected
方法。

非public,因为这些生命周期方法基本上是由SDK内部使用的,不应该由任何其他类调用(您不应该在任何地方调用
activity.onResume()
从任何类中,这都是自动完成的)

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