sPFFramework/src/main/java/it/polimi/spf/framework/services/SPFServiceRegistry.java
public InvocationResponse sendActivity(SPFActivity activity) {
		ServiceIdentifier id = mActivityTable.getServiceFor(activity);
		String componentName = mServiceTable.getComponentForService(id);

		if (componentName == null) {
			String msg = "No service to handle " + activity;
			Log.d(TAG, msg);
			return InvocationResponse.error(msg);
		}

		AppServiceProxy proxy = mCommunicationAgent.getProxy(componentName);
		if (proxy == null) {
			String msg = "Can't bind to service " + componentName;
			Log.d(TAG, msg);
			return InvocationResponse.error(msg);
		}

		try {
			InvocationResponse r = proxy.sendActivity(activity);
			Log.v(TAG, "Activity dispatched: " + r);
			return r;
		} catch (Throwable t) {
			Log.e(TAG, "Error dispatching invocation: ", t);
			return InvocationResponse.error("Internal error: " + t.getMessage());
		}
	}
public InvocationResponse sendActivity(SPFActivity activity) {
		ServiceIdentifier id = mActivityTable.getServiceFor(activity);
		String componentName = mServiceTable.getComponentForService(id);

		if (componentName == null) {
			String msg = "No service to handle " + activity;
			Log.d(TAG, msg);
			return InvocationResponse.error(msg);
		}

		AppServiceProxy proxy = mCommunicationAgent.getProxy(componentName);
		if (proxy == null) {
			String msg = "Can't bind to service " + componentName;
			Log.d(TAG, msg);
			return InvocationResponse.error(msg);
		}

		try {
			InvocationResponse r = proxy.sendActivity(activity);
			Log.v(TAG, "Activity dispatched: " + r);
			return r;
		} catch (Throwable t) {
			Log.e(TAG, "Error dispatching invocation: ", t);
			return InvocationResponse.error("Internal error: " + t.getMessage());
		}
	}
Dispatches an activity to the right application according to {@link
ActivityConsumerRouteTable#}

@param activity
@return