У меня большая проблема, моему приложению требуется около 3 секунд для запуска / открытия.В эти 3 секунды я вижу только черный экран.Я знаю некоторые проблемы для этого черного экрана, но все они не являются проблемой.
Я запускаю трассировку и вижу, что onCreate требуется более 2 секунд.Затем я углубляюсь и вижу, что addTab для TabHost требует более 2 секунд.
Является ли addTab также вызывающим onCreate для каждой операции каждой вкладки ??У меня также есть Custom_title_bar, но после удаления custom_title ему также нужно 2-3 секунды.
Так кто-нибудь из вас знает, что я могу сделать?Мне действительно нужны разные Действия в каждой вкладке, поэтому удалить Действия и использовать Представления невозможно.
Возможно ли инициализировать TabBar в Thread / AsyncTask и сделать недействительным MainActivity после его завершения?
Большое спасибо и привет - Мирко
РЕДАКТИРОВАТЬ: Здесь я добавил несколько фрагментов кода, сначала то, что произошло в моем onCreate в MainActivity:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main_activity);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.window_title);
Intent intent = new Intent(MainActivity.this, A.class);
setupTab(R.string.tab_a, R.drawable..., intent);
intent = new Intent(MainActivity.this, B.class);
setupTab(R.string.tab_b, R.drawable..., intent);
intent = new Intent(MainActivity.this, C.class);
setupTab(R.string.tab_c, R.drawable..., intent);
intent = new Intent(MainActivity.this, D.class);
setupTab(R.string.tab_d, R.drawable..., intent);
intent = new Intent(MainActivity.this, E.class);
setupTab(R.string.tab_e, R.drawable..., intent);
mTabHost.setCurrentTab(0);
SetupTab:
private void setupTab(int labelRes, int iconRes, Intent intent) {
String tag = (String) getText(labelRes);
mSpec = mTabHost.newTabSpec(tag)
.setIndicator(createTabIndicator(this, tag, iconRes))
.setContent(intent);
mTabHost.addTab(mSpec);
}
private View createTabIndicator(Context context, String title, int icon) {
LinearLayout indicator = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.tab_indicator, null);
TextView label = (TextView) indicator.findViewById(android.R.id.title);
if(title == null) label.setVisibility(View.GONE);
else label.setText(title);
ImageView tabicon = (ImageView) indicator.findViewById(android.R.id.icon);
tabicon.setImageResource(icon);
return indicator;
}
Я также установил собственную тему для своего приложения.В трассировке метода tabhost.addTab () требуется более 2000 мсек.Может быть, именно поэтому я вижу черный экран так долго.
Кто-то знал, почему есть черный экран?Я думаю, что нет BlackScreen, когда я опишу обычное другое приложение.Я знаю, как изменить BlackScreen: установка android: фон в теме на что-то другое, но это не решит проблему времени.
Я добавил SplashScreen, но я также вижу черный экран при запуске приложения(но только несколько миллисекунд).SplashScreen - это действие с ImageView и full_screen без заголовка.Он запускает поток, который ждет 2 секунды, а затем открывает MainActivity и завершает себя.