В настоящее время я сталкиваюсь со следующей проблемой: всякий раз, когда мое приложение Android запускается, ему необходимо выполнить некоторый трудоемкий код инициализации. Без этого кода все мои действия / услуги в приложении выиграли ' t работают правильно.
До сих пор я поместил этот код инициализации в действие SplashScreen, которое я объявил как действие MAIN в манифесте. После выполнения кода инициализации я завершаю () экран-заставку и начинаю собственно основное действие, то есть действие, состоящее из нескольких вкладок, откуда пользователь может перейти к нескольким другим действиям.
Теперь проблема заключается в следующем: когда мое приложение переводится в фоновый режим, через некоторое время и после запуска других приложений мое приложение / процесс уничтожается. Когда я повторно запускаю его с домашнего экрана, Android восстанавливает стек активности (задачу) и вызывает для них onCreate (). Однако действие экрана-заставки и, следовательно, код инициализации не выполняются, что приводит к исключению.
Теперь я мог бы поместить код инициализации в onCreate () приложения, однако это приводит к черному экрану, пока метод не завершится.
Кто-нибудь знает, где и как я могу правильно инициализировать свое приложение при запуске?
Код инициализации:
public void init() {
if (initialized) {
return;
}
// Initialize terms
List<Tag> tags= DynamicDao.loadAll(Tag.class);
int numTags = tags.size();
terms = new String[numTags];
for (int i = 0; i < numTags; i++) {
terms[i] = tags.get(i).getTag();
}
// Initialize document-term matrix
List<Item> items = DynamicDao.loadAll(Item.class);
createDocumentTermMatrix(items);
initialized = true;
}
Примечание: с элементом есть несколько связанных тегов , из которого мне нужно создать вектор документа.