package vandy.mooc.common;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
/**
* This abstract class extends the Service class and overrides
* lifecycle callbacks for logging various lifecycle events.
*/
public abstract class LifecycleLoggingService extends Service {
/**
* Debugging tag used by the Android logger.
*/
protected final String TAG =
getClass().getSimpleName();
/**
* Hook method called when the Service is created.
*/
@Override
public void onCreate() {
super.onCreate();
// Service is being created anew.
Log.d(TAG,
"onCreate() - service created anew");
}
/**
* Hook method called to deliver an intent sent via
* startService().
*/
@Override
public int onStartCommand(Intent intent,
int flags,
int startId) {
Log.d(TAG,
"onStartCommand() - intent received");
return super.onStartCommand(intent,
flags,
startId);
}
/**
* Factory method that's invoked when a client calls
* bindService().
*/
@Override
public IBinder onBind(Intent intent) {
Log.d(TAG,
"onBind() - client has invoked bindService()");
return null;
}
/**
* Factory method that's invoked when a client calls
* bindService().
*/
@Override
public boolean onUnbind(Intent intent) {
Log.d(TAG,
"onUnbind() - client has invoked unbindService()");
return super.onUnbind(intent);
}
/**
* Hook method called when the last client unbinds from the
* Service.
*/
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG,
"onDestroy() - service is being shut down");
}
}