Para responder à sua pergunta real, a autocriação da chamada para super.onCreate () é um recurso do plugin ADT. Em java, você não pode forçar diretamente uma subclasse a chamar a superimplementação de um método, afaik (consulte o padrão descrito em outras respostas para uma solução alternativa). No entanto, lembre-se de que, no Android, você não está instanciando objetos Activity (ou objetos Service) diretamente - você passa um Intent para o sistema e o sistema instancia o objeto e chama onCreate () sobre ele (junto com outros métodos de ciclo de vida). Portanto, o sistema tem uma referência de objeto direta para a instância Activity e é capaz de verificar (presumivelmente) algum Booleano definido como verdadeiro na implementação da superclasse de onCreate (). Embora eu não saiba exatamente como é implementado, provavelmente se parece com isto:
class Activity
{
onCreate()
{
superCalled = true;
...
}
...
}
E na classe de nível "sistema" que recebe o Intent e instancia o objeto Activity a partir dele:
...
SomeActivitySubclass someActivitySubclassObject = new SomeActivitySubclass();
someActivitySubclassObject.onCreate();
if (!someActivityObject.isSuperCalled())
{
Exception e = new Exception(...)
throw e;
}
Meu palpite é que provavelmente é um pouco mais complexo do que isso, mas essa é a ideia. O Eclipse cria automaticamente a chamada porque o plug-in ADT o instrui, por conveniência. Boa codificação!