2010-04-02 12 views
14

Nello sviluppo di applicazioni Android, passo spesso attraverso la parola CallBack in molti posti. Voglio sapere cosa significa dirci tecnicamente e come posso usare lo callback nelle applicazioni. Ho bisogno di una guida per capirlo e usarlo.callback in Android?

risposta

13

voglio sapere che cosa significa, dire noi tecnicamente

http://en.wikipedia.org/wiki/Callback_%28computer_science%29

"Nei linguaggi di programmazione orientati agli oggetti senza argomenti della funzione a valori, come Java, [callback] può essere simulato passando una classe astratta o un'interfaccia, di cui il ricevente chiamerà uno o più metodi, mentre il terminale chiamante fornisce un'implementazione concreta: tali oggetti sono effettivamente un insieme di callback, oltre ai dati che devono essere manipolati. nell'attuazione di vari design modelli come Visitor, Observer e Strategy. "

come posso gestire la richiamata delle applicazioni

ho idea che cosa questo significa.

+0

scusa per il mio peggior inglese segno di nuovo. Qualcuno ha fatto quello giusto. – Praveen

+0

Chiara spiegazione –

5

Hmm. Che ne dici di un esempio. Si scrive un algoritmo quicksort in C. L'utente che desidera utilizzare l'algoritmo deve fornire un metodo di confronto appropriato per ciò che l'utente sta ordinando con il proprio algoritmo. L'utente deve passare un puntatore a funzione al metodo di confronto dell'utente al codice quicksort. Il codice quicksort utilizza questo indirizzo, il puntatore della funzione, per CALL BACK alla funzione di confronto dell'utente. Fornisci un prototipo di funzione, nessuna implementazione, dal momento che non puoi sapere come determinare l'ordinalità di ciò che viene ordinato. L'utente fornisce l'implementazione del confronto che ha senso per ciò che l'utente sta ordinando. Questa implementazione deve corrispondere al prototipo della funzione. Il puntatore della funzione viene utilizzato dall'algoritmo quicksort per raggiungere indietro e toccare il codice dell'utente.

Questo è in realtà sul polimorfismo.

In java, è possibile utilizzare un'interfaccia per farlo. Quindi per l'ordinamento, vedi l'interfaccia IComparer e IComparable.

5

Un'interfaccia Callable può essere utilizzata per eseguire un pezzo di codice come Runnable. Tuttavia, Callable può restituire il risultato e può verificare un'eccezione.

Per ulteriori dettagli. http://developer.android.com/reference/java/util/concurrent/Callable.html

Utilizzando le interfacce Callable è possibile passare un argomento come funzione Ho aggiunto un frammento di codice semplice per la comprensione.

public class MainActivity<V> extends Activity { 


    Callable<String> doLogin=null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     doLogin=new Callable<String>() { //created but not called now. 

      @Override 
      public String call() throws Exception { 

       //make some piece of code 
       return "something"; //or false 
      } 
     }; 

     CheckSession checkSession=new CheckSession("sessionName"); 
     String sessionKey=""; 


     try { //we are sending callable to the DAO or any class we want 
      sessionKey=checkSession.getSessionKey(doLogin); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 



public class CheckSession{ 


    String sessionName=""; 
    Callable<String> func=null; 

    public CheckSession(String sessionName) { 
     super(); 
     this.sessionName = sessionName; 

    } 

    public String getSessionKey(Callable<String> doLogin) throws Exception{ 

     func=doLogin; 

     return (String) func.call(); 

    } 

} 
Problemi correlati