Autore Topic: A cosa serve il metodo addCallback()?  (Letto 666 volte)

Offline crissstian96

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer liquid mini
  • Sistema operativo:
    Windows 7
A cosa serve il metodo addCallback()?
« il: 31 Ottobre 2013, 09:31:37 CET »
0
Salve a tutti, sto analizzando un semplicissimo progetto open source di un app che permette di scattare foto tramite la fotocamera.
Come ho già detto, il progetto è molto semplice e comprensibile, tranne per il fatto che è pieno di richiami al metodo addCallback(), per la precisione:

Codice (Java): [Seleziona]
preview=(SurfaceView)findViewById(R.id.preview);
previewHolder=preview.getHolder();
previewHolder.addCallback(surfaceCallback);

In cui surfaceCallback fa riferimento a questo:
SurfaceHolder.Callback surfaceCallback=new SurfaceHolder.Callback() {
    public void surfaceCreated(SurfaceHolder holder) {
      // no-op -- wait until surfaceChanged()
    }
   
    public void surfaceChanged(SurfaceHolder holder,
                               int format, int width,
                               int height) {
      initPreview(width, height);
      startPreview();
    }
   
    public void surfaceDestroyed(SurfaceHolder holder) {
      // no-op
    }
  };
Su google non trovo scritto altro che un callback è una funzione che viene passata come parametro ad un'altra funzione, ma continuo a non venirne a capo. Chi può spiegarmi?

« Ultima modifica: 03 Novembre 2013, 10:23:16 CET da crissstian96 »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:A cosa serve il metodo addCallback()?
« Risposta #1 il: 31 Ottobre 2013, 09:45:07 CET »
0
Senza stare a dilungarmi troppo, una callback è una funzione definita dall'utente che chieme "ri-chiamata" (da qui l'uso della parola callback) dal sistema. In questo caso specifico, la Camera dice: "Utente, mi dici che funzione devo chiamare quando ho pronti i byte dell'immagine". L'Utente risponde: "Camera, prendi questa callback, chiamala quando hai pronti i byte". La callback è quindi il modo con cui la Camera passa l'immagine all'Utente.

Trovi spiegazioni sull'uso della Camera, qua:  Controlling the Camera | Android Developers


PS: Quando posti il codice, formattalo usando l'apposito tastino per renderlo più leggibile.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline crissstian96

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Acer liquid mini
  • Sistema operativo:
    Windows 7
Re:A cosa serve il metodo addCallback()?
« Risposta #2 il: 03 Novembre 2013, 10:24:05 CET »
0
Grazie mille :) sei stato chiarissimo e utilissimo.
Ho corretto la formattazione del codice