2013-01-21 16 views
0

从服务器下载数据后,我必须将一些数据存储到数据库中,我已成功下载数据,但是当我将其更新到sqlite数据库时需要时间。在这种情况下,如果用户保持应用程序是背景,并且有时用户在前台将应用程序带回,那么在几分钟后它就会崩溃。在后台数据库更新有问题

当用户在前台放回应用程序时,需要花费很长时间才能加载用户离开它的同一屏幕,并且在屏幕出现应用程序崩溃之前。

请帮助我这....我怎么能保持这个过程运行在后台以及前景没有任何问题。

+0

不时......也许......你应该“回复”东西..也许你可以“接受”一个答案.. – TonyMkenu

回答

0

在后台线程中更新您的sqlite数据库(使用performSelectorInBackground)。

如果您在主线程中更新它,那么当用户尝试在前台应用程序时,应用程序主线程正忙于完成更新数据库任务,无法加载应用程序并导致崩溃。

+0

谢谢,我尝试过,但它没没有帮助。 –

3

尝试这种情况:

[self performSelectorInBackground:@selector(dataBaseUpdateMethod:) 
         withObject:dictForUpdatingTheDatabase]; 

凡dataBaseUpdateMethod将其更新数据库& dictForUpdatingTheDatabase是NSDictionary的对象的方法(或说任何类型的任何其它对象)。

希望这会有所帮助。

+0

谢谢,我试过但它没有帮助。 –

0

使用:

[self performSelectorInBackground:@selector(updateDB:) withObject:dictionary]; 
+0

谢谢,但它没有帮助。 –