2013-08-15 13 views
7

Perché android.app.Activity non è astratto in base alla progettazione se la documentazione/i tutorial dicono che almeno il suo metodo onCreate()deve essere implementato.Perché Android.app.Activity non è astratto in base alla progettazione?

Da http://developer.android.com/guide/components/activities.html

È necessario implementare questo metodo. Il sistema chiama questo quando si crea attività.

Anche se non è stato menzionato esplicitamente, senza l'implementazione non ha senso avere l'oggetto android.app.Activity o? Capisco che parrent abbia bisogno probabilmente di eseguire il codice nella propria implementazione di onCreate() ma sicuramente ci può essere progettazione quando una parte della genitrice onCreate() sarebbe una chiamata a un metodo di richiamo astratto che deve essere implementato dallo sviluppatore.

Esempio di questo disegno:

public abstract class Activity { 


    public abstract void implementThis(Object o); 

    public void onCreate(Object o){ 
     //Do stuff 
     implementThis(o); 
     //Do other stuff or end. 
    } 

} 

mi manca qualcosa qui? Perché non c'è lo Activity non astratto se lo sviluppatore deve e ha bisogno di per sottoclasse e fornire un'implementazione personalizzata?

risposta

3

Perché android.app.Activity non è astratto in base alla progettazione se la documentazione/le esercitazioni dicono che almeno il suo metodo onCreate() DEVE essere implementato.

A quanto pare la documentazione protesta troppo. Non è necessario avere per implementare onCreate(). Puoi dire questo creando un'attività senza onCreate() ed eseguendola.

senza l'implementazione non ha senso avere l'oggetto android.app.Activity o?

Si sono invitati a attentamente impostare l'interfaccia utente da qualche altra parte (per esempio, onResume()). Normalmente, lo fai in onCreate().

Capisco che parrent probabilmente ha bisogno di eseguire il codice nella propria implementazione di onCreate(), ma sicuramente non ci può essere di progettazione, quando parte del genitore onCreate() sarebbe aa chiamata ad un metodo di call-back astratta che deve essere implementato dallo sviluppatore.

Sicuro. Hanno scelto di non farlo in quel modo.

0

L'attività impostata in onCreate è consigliata ma non richiesta. Dite che non mi interessa il ciclo di vita della mia attività, potrei configurare tutto in onResume e distruggerlo in .Fornire un metodo astratto chiamato da onCreate è più restrittivo di qualsiasi altra cosa.

Nota: non sto suggerendo che qualcuno faccia questo - solo che tu sia il se lo volessi davvero.

Problemi correlati