Как сделать обратный вызов после полного представления?
Как сделать обратный вызов после полного отображения представления?
Я пытаюсь вызвать метод, который принимает экранный снимок родительского представления.
Если я пишу этот код в методе onCreate()
, приложение вылетает из-за нулевого указателя (поскольку рендеринг не отображается).
на данный момент временное решение, которое я выполнил, заключается в том, чтобы сделать задержку в 1 секунду до вызова этого метода.
Но я ищу гораздо более надежное решение этой проблемы.
любые предложения и помощь оценены.
спасибо:)
Ответы
Ответ 1
У меня есть лучший вариант сейчас:)
это действительно дает обратный вызов после рендеринга макета
private class LoadActivity extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
mainMethod();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
takeScreenShot(1);
}
@Override
protected String doInBackground(String... params) {
return null;
};
}
Я создал вышеописанный класс и затем вызвал этот метод для выполнения в onCreate()
LoadActivity loadactivity= new LoadActivity();
loadactivity.execute();
Ответ 2
Попробуйте эту логику... всегда вызывается после того, как представление получило фокус или визуализировалось или теряет фокус
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
doWhateverAfterScreenViewIsRendered();
}
Ответ 3
Вы должны использовать обратный вызов onResume()
на Activity
, который
Вызывается, когда действие начнет взаимодействовать с пользователем. На этом этапе ваша деятельность находится в верхней части стека действий, при этом пользовательский ввод будет работать.