Здравствуйте.В onCreate()
делаю некоторые несложные действия.При запуске приложения сначала идет белый экран на 5 сек где то, а потом уже показывается дизайн. Почему такое происходит и как это исправить?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.header1 = (LinearLayout) findViewById(R.id.header1);
this.header2 = (LinearLayout) findViewById(R.id.header2);
this.header3 = (LinearLayout) findViewById(R.id.header3);
this.header4 = (LinearLayout) findViewById(R.id.header4);
this.header5 = (LinearLayout) findViewById(R.id.header5);
this.header6 = (LinearLayout) findViewById(R.id.header6);
this.header7 = (LinearLayout) findViewById(R.id.header7);
this.header8 = (LinearLayout) findViewById(R.id.header8);
this.header9 = (LinearLayout) findViewById(R.id.header9);
this.header10 = (LinearLayout) findViewById(R.id.header10);
this.header11 = (LinearLayout) findViewById(R.id.header11);
this.header12 = (LinearLayout) findViewById(R.id.header12);
this.header13 = (LinearLayout) findViewById(R.id.header13);
this.header14 = (LinearLayout) findViewById(R.id.header14);
this.header15 = (LinearLayout) findViewById(R.id.header15);
this.header16 = (LinearLayout) findViewById(R.id.header16);
this.header17 = (LinearLayout) findViewById(R.id.header17);
this.header18 = (LinearLayout) findViewById(R.id.header18);
this.header19 = (LinearLayout) findViewById(R.id.header19);
this.header20 = (LinearLayout) findViewById(R.id.header20);
}
Инфлейт разметки происходит методом setContentView()
- именно он читает XML-файл и на его основе строит изображение на экране. То есть, результатом выполнения этого метода является изображение, следовательно действия после этого метода на скорость отображения никак не влияют.
Учитывая, сколько у вас в последствии ищется только контейнеров (а они наверняка содержат еще большое количество виджетов в себе) не трудно предположить, что инфлейт такой разметки занимает достаточное количество времени.
Вам необходимо оптимизировать свою xml-разметку, сделать ее более простой и линейной. Для начала ее необходимо "прогнать" через Hierarchy Viewer (в настоящее время это не отдельный файл, а входит в инструменты Android Studio), чтобы определить проблемные места, затем думать, как решить эти проблемы. Все "лампочки" всех элементов разметки в идеале должны быть зелеными, на крайний случай - желтыми. Универсальных решений тут нет, но есть общие рекомендации по оптимизации разметки, и еще и вот еще.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Какой аналог typedef из Си есть в Java? Или как это можно грамотно обойти? Например, работаю с Android-NDK, в Си есть функция, ее прототип:
Есть Activity у которого есть свой тулбарВ этом activity два фрагмента, один из которых также содержит свой тулбар
При запуске Android Device Monitr не работает Hierarchy ViewerВо всех окнах пишет ошибку: