Handler.postDelayed внутри onCreate of Activity - PullRequest
0 голосов
/ 15 мая 2018

У меня есть активность, которая содержит много просмотров и фрагментов, она почти открывается за 850 мсек при «теплом» или «горячем» запуске, «холодный» запуск 1250 мс.

То, что я сделал, чтобы сократить это время почти до 350 мс, - это пост-задержка инициализации моих просмотров следующим образом:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_details);
    new Handler().postDelayed(() -> {
        initUi();
        bindDataToViews();
    }, 50);
}

Мой вопрос:

1- Имеет ли предыдущий код какие-либо побочные эффекты, которые не будут видны сразу.

2- Любое предложение или лучшая реализация будут оценены

1 Ответ

0 голосов
/ 15 мая 2018

Если вы хотите улучшить производительность вашего пользовательского интерфейса, вы можете следовать указаниям Android, чтобы сделать это: https://developer.android.com/training/improving-layouts/. Вы также можете начать использовать FrameLayouts вместо RelativeLayouts, как описано здесь https://academy.realm.io/posts/gotocph-daniel-lew-efficient-android-layouts/. Если вы определенно не можете использовать FrameLayout, вы должны использовать ConstraintLayout. С помощью этих основных шагов вы улучшите производительность своего приложения.

Рекомендую измерять производительность приложения до и после изменений. Вы можете найти некоторые инструменты здесь: https://developer.android.com/studio/profile/. Я использовал dumpsys и GPU profiler, это очень круто!

...