我有一个后台提取程序来更新我的本地sqlite数据。
如果应用程序也在前台运行,我希望能够检测后台提取是否正在运行,以便阻止UI尝试加载部分填充的sql行。
如何检测后台提取是否正在运行?
另外,是否有更好的ui模式而不是告诉用户他们无法查看数据?
答案 0 :(得分:0)
您可以查看应用程序的状态
[UIApplication sharedApplication].applicationState
有三种可能的选择
UIApplicationStateActive
UIApplicationStateInactive
UIApplicationStateBackground
如果您需要检查它是否是UI线程,请尝试使用
if ([NSThread isMainThread])
{
// main thread
}
答案 1 :(得分:0)
听起来你应该使用UI管理对象上下文中的不同托管对象上下文进行后台提取。
当数据一致且可供显示时,您可以保存背景上下文,并使用didSaveContextNotification
将更改合并到UI上下文中并更新显示。
您的后台获取不必了解UI逻辑。 UI逻辑只需知道在数据因合并而发生更改后应该更新。