You are on page 1of 14

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;
}

<service
android:name="com.example.servicetest.MySer

vice" />

@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
return mBinder;
}

//Service

@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;
}
}

You might also like