2012-09-17 58 views
5

在閱讀了「你好,Android」的書,我注意到:public onCreate()或protected onCreate()?

onCreate(Bundle savedInstanceState)方法每個Java文件,具有 保護訪問修飾符除了在節目的主要活動[有:public void onCreate(Bundle savedInstanceState)] 。

爲什麼上節目的主要活動的onCreate方法public,但protected其他地方?

+0

您可以在所有活動中使用** public **訪問修飾符.... –

+0

您能告訴我們該程序做了什麼嗎? –

+0

感謝您的快速回復。 – Soroor

回答

0

它也可以是protected。這沒有什麼重要或明智的。

1

您可以更改方法的可見性。什麼,你不能做的是:減少可見性(使公共方法私有),訪問私有方法(使它公衆)

2

onCeate()被保護,以避免從活動對象的它調用。

MyActivity activity = new MyActivity(); 
activity.onCreate(args); // which doesn't make sense because activity is not yet created 

活動以來被創建時,此方法只調用,稱這是自己最有可能會給你一個NullPointerException異常因爲尚未創建活動。 S/O Post

0

沒有理由將該方法公開(但這樣做不會影響任何內容)。無論如何您都不應該手動調用它。

順便說一句Intellij IDEA有活動模板公開onCreate。這可能是該方法在本書中公開的原因。