เพื่อตอบคำถามที่แท้จริงของคุณการสร้างการโทรไปที่ super.onCreate () โดยอัตโนมัติเป็นคุณลักษณะของปลั๊กอิน ADT ใน java คุณไม่สามารถบังคับให้ subclass เรียกใช้ super ของ method ได้โดยตรง afaik (ดูรูปแบบที่อธิบายไว้ในคำตอบอื่น ๆ สำหรับการแก้ไขปัญหา) อย่างไรก็ตามโปรดทราบว่าใน Android คุณไม่ได้สร้างอินสแตนซ์อ็อบเจ็กต์กิจกรรม (หรือเซอร์วิสอ็อบเจ็กต์) โดยตรง - คุณส่ง Intent ไปยังระบบและระบบจะสร้างอินสแตนซ์อ็อบเจ็กต์และเรียกใช้ onCreate () ตามนั้น (พร้อมกับวิธีการใช้งานอื่น ๆ ) ดังนั้นระบบจึงมีการอ้างอิงอ็อบเจ็กต์โดยตรงไปยังอินสแตนซ์กิจกรรมและสามารถตรวจสอบ (น่าจะเป็น) บูลีนบางตัวที่ตั้งค่าเป็น true ในการใช้งาน superclass ของ onCreate () แม้ว่าฉันจะไม่รู้ว่ามันถูกนำไปใช้อย่างไร แต่ก็อาจมีลักษณะดังนี้:
class Activity
{
onCreate()
{
superCalled = true;
...
}
...
}
และในคลาสระดับ "ระบบ" ที่รับ Intent และอินสแตนซ์อ็อบเจ็กต์ Activity จากมัน:
...
SomeActivitySubclass someActivitySubclassObject = new SomeActivitySubclass();
someActivitySubclassObject.onCreate();
if (!someActivityObject.isSuperCalled())
{
Exception e = new Exception(...)
throw e;
}
ฉันเดาว่ามันอาจจะซับซ้อนกว่านั้นเล็กน้อย แต่คุณเข้าใจแล้ว Eclipse จะสร้างการโทรโดยอัตโนมัติเนื่องจากปลั๊กอิน ADT บอกให้เพื่อความสะดวก ขอให้สนุกกับการเขียนโค้ด!