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()
从任何类中,这都是自动完成的)
非私有,允许子类运行某些自定义代码