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