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