OnPrepare

annotation class OnPrepare

A MountSpec can define a method annotated with OnPrepare to run code that is more heavy and cannot be done during OnMount or OnBind. The method is called once before the layout calculation is performed, and the framework can invoke it either on the UI thread or on a background thread.

The annotated method has a void return type and will be passed the following arguments when the framework invokes it:

Required:

  1. ComponentContext

Optional annotated arguments:

The annotation processor will validate this and other invariants in the API at build time.

OnPrepare-annotated methods can calculate values which are heavy to compute and pass them as inter-stage props to other methods which are performance critical, such as .

For example:

@MountSpec
class ExampleMountSpec {

 @OnPrepare
  static void onPrepare(
      ComponentContext c,
     @Prop String colorName,
     Output<Integer> color) {
      color.set(Color.parseColor(colorName));
  }

 @OnCreateMountContent
  static ColorDrawable onCreateMountContent(
      ComponentContext c) {
    return new ColorDrawable();
  }

 @OnMount
  static void onMount(
      ComponentContext c,
      ColorDrawable colorDrawable,
     @FromPrepare int color){
    colorDrawable.setColor(color);
  }
}

See also

Functions

Link copied to clipboard
abstract fun annotationType(): Class<out Annotation>
Link copied to clipboard
abstract fun equals(p: Any): Boolean
Link copied to clipboard
abstract fun hashCode(): Int
Link copied to clipboard
abstract fun toString(): String