/**
  * Automatically called when the Service is being started up--usually from the test package engine
  * requesting to bind with the Service.
  */
 @Override
 public int onStartCommand(Intent intent, int flags, int startId) {
   android.os.Message msg = mServiceHandler.obtainMessage();
   msg.arg1 = startId;
   mServiceHandler.sendMessage(msg);
   // return START_STICKY;
   return START_NOT_STICKY;
 }
 protected void sendIPCMessage(int what, char[] props) {
   Message msg = mServiceHandler.obtainMessage(what);
   msg.replyTo = serviceMessenger;
   try {
     debug("sending IPC Message ID: " + what + ", " + String.valueOf(props));
     mServiceHandler.sendMessageAsMultipleParcels(engineMessenger, msg, props);
   } catch (Exception x) {
     debug("sendIPCProps " + x.getClass().getSimpleName() + ", " + x.getMessage());
   }
 }
 protected void sendIPCMessage(int what) {
   Message msg = mServiceHandler.obtainMessage(what);
   msg.replyTo = serviceMessenger;
   try {
     debug("sending IPC Message ID: " + what);
     engineMessenger.send(msg);
   } catch (Exception x) {
     debug("sendIPCEvent " + x.getClass().getSimpleName() + ", " + x.getMessage());
   }
 }
  protected void sendServiceParcelAcknowledge(String messageID, int index) {
    Message msg = mServiceHandler.obtainMessage(MessageUtil.ID_PARCEL_ACKNOWLEDGMENT);
    msg.replyTo = serviceMessenger;
    msg.arg1 = index;

    try {
      debug("sending IPC parcel acknowledge: " + messageID + ", " + index);
      if (messageID != null) msg.obj = MessageUtil.setParcelableMessage(messageID);
      engineMessenger.send(msg);
    } catch (Exception x) {
      debug("sendIPCEvent " + x.getClass().getSimpleName() + ", " + x.getMessage());
    }
  }