public static @interface ComponentTree.RecyclingMode
public static final int DEFAULT
Default recycling mode.
public static final int NO_VIEW_REUSE
Keep calling unmount and returning Views to the recycle pool, but do not actually reuse them.
Take a view out of the pool but throw it away. Create a new view instead of using it. This is
to test the hypothesis that the crashes are related to the actual re-use of views (i.e. the
view is in a bad state and we re-attach it to the tree and cause a crash)
public static final int NO_VIEW_RECYCLING
Keep calling unmount, but do not put Views into the recycle pool. This is to test the
hypothesis that the crashes are more related to holding onto Views longer rather than the
actual re-use of them. If we see crashes decrease in this variant but not in the
NO_VIEW_REUSE variant, this would be indicative of just holding onto views being the problem.
public static final int NO_UNMOUNTING
Do not call Component.unmount, do not put Views into the recycle pool. This is to test the
hypothesis that the crashes are more related to unmount calls (which also execute product
logic). If we do not see crashes improving in the first two variants but improving in this
one, this would be indicative of one of the unmount implementations being involved in the
crash (e.g. unmount racing with onCreateLayout on another thread).