【发布时间】:2010-09-10 17:25:50
【问题描述】:
我目前面临以下问题:每当我的 Android 应用程序启动时,它都需要执行一些耗时的初始化代码。如果没有此代码,我在应用程序中的所有活动/服务都将无法正常工作。
到目前为止,我已将此初始化代码放入 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;
}
注意:一个项目有几个相关的标签,我需要从中创建一个文档向量。
【问题讨论】:
标签: java android sdk android-activity