Итак, через некоторое время программирование приложений для Android (1 загружено на рынок, есть 3k + активные установки с рейтингом 4,7), я начал задаваться вопросом, как я могу сделать приложение еще более потрясающим. Я понял, что я действительно не мог добавить какие-либо новые и изменяющиеся в мире функции, поэтому я начал проверять производительность и как оптимизировать практически все, как найти лучший коэффициент использования процессора/памяти и т. Д.Конструкторы Android
В любом случае, я выяснил, что onCreate будет работать в случае поворота экрана, что вполне логично, но есть некоторые (большие) вычисления, которые, безусловно, не нужно повторять после каждого поворота. Один из них - итерация через csv с 6500 строками, имеющими 4 столбца, 2 из которых всегда содержит некоторые данные, 2 из которых не всегда. 2-й столбец с данными будет использоваться для адаптера автозаполнения, другой 2 является необязательным для функции, но его все равно нужно инициализировать. В настоящее время это работает в asynctask, запущенном в конце onCreate, и занимает около 3 секунд на моем HTC Desire S, у которого неплохой процессор, поэтому более низкие бюджетные устройства будут иметь более длительное время инициализации после каждого поворота, который конечно, я не хочу ... Это не приведет к сбою пользовательского интерфейса, но автозаполнения не будет, пока не закончится секундная пауза.
SO: мой вопрос: могу ли я сделать это в каком-то отдельном методе, например, в конструкторе (например, в стандартном java), или это плохая практика, потому что особый жизненный цикл действий? Я имею в виду, я создаю свою деятельность так, как будет работать «конструктор», и сразу после этого будет запущен мой onCreate. В случае вращения мой «конструктор» не будет запускаться снова, но onCreate будет. Стабильность по-прежнему будет моей целью nr1. Или, есть ли хороший способ сделать это? Что-то, что создано именно так, о чем я не помню? Я действительно хочу многого улучшить в этом вопросе, и я был бы очень признателен за помощь в этом, желательно от тех, у кого есть опыт в этом, но любая помощь приветствуется! :)
Например, если я хочу, чтобы сделать новую деятельность таким образом, я хотел бы сделать это что-то вроде этого:
new MyActivity(some parameters);
около того пробеги конструктора, который заканчивается что-то вроде этого:
startActivity(new Intent(context, MyActivity.class));
Таким образом, конструктор запускается, мои переменные будут инициализированы (не подключаются к какому-либо виду и т. Д.), И после этого моя активность может запускать переменную onCreate в любое время.
пардон, если Im неправильно синтаксис, я просто fasttyped его :)
Я решил отделить эту логику до инициализатора Activity – hundeva