services

Upload: david-vanegas

Post on 08-Jan-2016

218 views

Category:

Documents


0 download

DESCRIPTION

Material Android

TRANSCRIPT

  • Instructor: Rodrigo Ivn Fonseca Daza

  • Un Service es un proceso en una aplicacin Android que se ejecuta incluso cuando el usuario est interactuando con diferentes Activities

    Tambin se puede ejecutar cuando la aplicacin es invisible para el usuario

  • Para ejecutar tareas que requieran una cantidad de tiempo considerable, pero que no sean prerrequisito para interactuar con la interfaz grfica Ej: descarga de archivos, reproduccin de audio,

    actualizacin de ciertos contenidos

    Para posible intercambio de acciones entre varias aplicaciones

  • public class MyService extends Service {

    @Override

    public IBinder onBind(Intent arg0) {

    return null;

    }

    }

  • @Override

    public int onStartCommand(Intent

    intent, int flags, int startId) {

    // Ejecutar accin del servicio

    return super.onStartCommand(intent,

    flags, startId);

    }

  • @Override

    public void onDestroy() {

    // Dar por terminado el servicio

    super.onDestroy();

    }

  • Intent i = new

    Intent(MainActivity.this,

    MyService.class);

    startService(i);

    Intent i = new

    Intent(MainActivity.this,

    MediaService.class);

    stopService(i);

  • startService no es la nica manera de iniciar el proceso dentro de un Service

    Tambin se pueden enlazar uno o ms Activities al Service, de manera que el proceso no se ejecute indefinidamente si la actividad desde el que fue llamado no es visible.

  • @Override

    public IBinder onBind(Intent intent) {

    // Un Activity se enlaza por primera vez al //Service

    return mBinder;

    }

    @Override

    public void onRebind(Intent intent) {

    // Un Activity se enlaza al Service despes de un //llamado de onUnbind

    }

    @Override

    public boolean onUnbind(Intent intent) {

    // Todos los Activities se desenlazan del Service

    return mAllowRebind;

    }

  • public class MyBinder extends Binder {

    public void showBinderMessage() {

    Toast.makeText(MediaService.this,

    "Mensaje de notificacin",

    Toast.LENGTH_SHORT).show();

    }

    public MediaService getService() {

    return MediaService.this;

    }

    }

  • public ServiceConnection mMyBoundServiceConnection = new ServiceConnection() {

    public void onServiceDisconnected(ComponentName name) {

    Toast.makeText(MainActivity.this, "Service disconnected", Toast.LENGTH_LONG).show();

    }

    @Override

    public void onServiceConnected(ComponentName name, IBinder binder) {

    MyBinder myBinder = (MyBinder)binder;

    myBinder.showBinderMessage();

    mService = myBinder.getService();

    mService.showServiceMessage();

    Toast.makeText(MainActivity.this, "Service connected", Toast.LENGTH_LONG).show();

    }

    };

  • public void bindMyBoundService(View view) {

    Intent i = new Intent(this, MediaService.class);

    bindService(i, mMyBoundServiceConnection, Context.BIND_AUTO_CREATE);

    }

    public void unbindMyBoundService(View view) {

    if(mService !=null){

    unbindService(mMyBoundServiceConnection);

    mService = null;

    }

    }