why so hard? why not just simple →
PageFactory.initElements(new AppiumFieldDecorator(driver, Duration.ofSeconds(SEC_NEEDED)), this);
plus there is also annotation:
@WithTimeout(time = 5, unit = TimeUnit.SECONDS) // look for 5 seconds for this element
@AndroidFindBy(id = "widget locator")
private WidgetExample widgetExample;
check also example → PageObject Initialization Best Practices - #8 by Aleksei