iphone线程加速app的启动

时间:2010-03-28 14:35:03

标签: iphone multithreading startup performance

我有一个应用必须从Sqlite数据库获取数据才能向用户显示第一个元素。

我创建了一个包装数据库访问的域对象,它是一个线程安全的单例。

鉴于iPhone在线程应用程序中的文件访问和内存管理功能,以下策略是否最佳,以确保最快的负载:

1)在AppDelegate的FinishedLaunching事件中,我要做的第一件事是在新线程中创建域单例。这将导致域对象转到Sqlite并获取所需的数据而无需锁定UI线程。

2)然后我调用标准的Window方法来添加View和MakeKeyAndVisible等。

在AppDelegate中是否有一个早期阶段我应该触发创建域对象并访问Sqlite的线程?

1 个答案:

答案 0 :(得分:1)

嘿,你可以一直回到应用程序的执行入口点并在调用UIApplicationMain之前创建自己的线程......这太过分了。

applicationDidFinishLaunching是最好的选择,如果您担心快速加载,更好的方法是将数据缓存到plist或NSUserDefaults中,然后在数据库准备就绪后将其更新几百毫秒。 / p>