从服务器下载数据后,我必须将一些数据存储到数据库中,我已经成功下载了数据,但是当我将其更新到 sqlite 数据库时需要时间。在这种情况下,如果用户将应用程序保持在后台,并且有时用户将应用程序带回前台,那么几分钟后它就会崩溃。
当用户将应用程序带回前台时,加载用户离开它的同一个屏幕需要很长时间,并且在屏幕出现之前应用程序崩溃了。
请帮助我......我怎样才能让这个过程在后台和前台运行而没有任何问题。
从服务器下载数据后,我必须将一些数据存储到数据库中,我已经成功下载了数据,但是当我将其更新到 sqlite 数据库时需要时间。在这种情况下,如果用户将应用程序保持在后台,并且有时用户将应用程序带回前台,那么几分钟后它就会崩溃。
当用户将应用程序带回前台时,加载用户离开它的同一个屏幕需要很长时间,并且在屏幕出现之前应用程序崩溃了。
请帮助我......我怎样才能让这个过程在后台和前台运行而没有任何问题。
尝试这个:
[self performSelectorInBackground:@selector(dataBaseUpdateMethod:)
withObject:dictForUpdatingTheDatabase];
其中,dataBaseUpdateMethod 将是更新数据库的方法,而 dictForUpdatingTheDatabase 是 NSDictionary 对象(或者说任何其他任何类型的对象)。
希望这可以帮助。
用这个:
[self performSelectorInBackground:@selector(updateDB:) withObject:dictionary];
在后台线程中更新您的 sqlite 数据库(使用performSelectorInBackground
)。
如果您在主线程中更新它,那么当用户尝试在前台应用程序时,应用程序主线程正忙于完成您的更新数据库任务并且无法加载应用程序并导致崩溃。