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