Mat*_*ias 6 java sdk android android-activity
我目前面临以下问题:每当我的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;
}
Run Code Online (Sandbox Code Playgroud)
注意:一个Item有几个相关的标签,我需要从中创建一个文档向量.
你的初始化有多昂贵?你在那儿做什么?一般来说,我建议不要使用启动屏幕(它是移动应用程序,而不是桌面应用程序)。相反,在显示主 UI 时使用工作线程来初始化数据,然后在工作线程完成后使用处理程序来初始化 UI。
或者,我会研究为什么你的初始化花费这么长时间,并优化它。你在那做什么?
| 归档时间: |
|
| 查看次数: |
9839 次 |
| 最近记录: |