code: @Override
  	public void execute(final Object context, int uiTaskId, final Object... args) {
  		
  		Activity activity = ContextUtils.asActivity(context);
  		
  		Set<Method> methods = MethodUtils.getAllMethods(context, UI.class);
  		
  		for (final Method method : methods) {
  			
  			final UI uiTask = method.getAnnotation(UI.class);
  			
  			if(uiTask.value() == uiTaskId) {
  			
  				final Runnable runnable = new Runnable() {
  				
  					@Override
  					public void run() {
  					
  						try {
  										
  							if(!method.isAccessible()) method.setAccessible(true);
  										
  							method.invoke(context, args);
  						} 
  						catch (Exception e) {
  							
  							StringBuilder stringBuilder = new StringBuilder()
  							.append("Failed to execute UI task ")
  							.append(method.getName())
  							.append(" on ")
  							.append(context.getClass().getName())
  							.append(" with arguments ")
  							.append(Arrays.toString(args))
  							.append(". ");
  										
  							Log.e(UITaskService.class.getName(), stringBuilder.toString(), e);
  						}
  					}
  				};
  				
  				if(uiTask.delay() > 0l) {
  				
  					try {
  						
  						Thread.sleep(uiTask.delay());
  					}
  					catch (InterruptedException ie) {
  						
  						StringBuilder stringBuilder = new StringBuilder()
  						.append("UI task delay of ")
  						.append(uiTask.delay())
  						.append(" for ")
  						.append(method.getName())
  						.append(" on ")
  						.append(context.getClass().getName())
  						.append(" was interrupted!");
  						
  						Log.e(getClass().getSimpleName(), stringBuilder.toString(), ie);
  					}
  				}
  				
  				activity.runOnUiThread(runnable);
  				break;
  			}
  		}
  	}
docs: {@inheritDoc}
  
  <p>Executes a method designated as a <i>UI Task</i> (via
  the annotation {@link UI}) on the <b>UI Event Loop</b>.</p>