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:
- 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);
}
}
Content copied to clipboard