protected
?我对Access-specifiers的理解如下 ::
Activity class
定义为protected
protected
答案 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()
,这是自动完成的)。
非私有允许子类运行某些自定义代码。