2013-12-20 42 views
1

我的應用程序首先下載一個潛在的大文件,然後閱讀該文件更新我的sqlite數據庫。我的問題是,如果我的應用程序在這個過程中後退,我最終會有一個損壞的數據庫或丟失的數據(因爲更新過程中斷)iOS 7中用於數據庫更新的背景技術

對於下載大文件我可以使用

後臺傳輸服務技術

但是,我還沒有找到一個解決方案,不中斷更新我的本地SQLite數據庫,無論我的應用程序在後臺或前臺

+0

後臺任務(ios 6)有5分鐘時間窗口來完成他們的工作。你真的認爲你會需要那麼多時間嗎? – Alex

+0

其實在iOS 6後臺任務有一個** 10分鐘的**不是5的窗口來完成他們的工作。但是,我要求** IOS 7 ** – Loukas

+0

的解決方案如果某項任務在移動設備上的活動時間超過5分鐘,您可能會將您的iPhone與PC混淆。 – Alex

回答

0

我有一個建議,不要在後臺更新數據庫,但可能是解決方案。

首先,您需要一種方法來幫助您保存處理和更新數據庫的文件的名稱(也許您可以將其名稱保存在plist文件中)。

然後,您在後臺正常下載文件,並且一旦您的應用程序返回到前臺,您將遍歷下載的文件並獲取未處理的文件,然後開始更新數據庫。

+0

如果更新在大文件中被中斷,該怎麼辦? – Loukas

+0

@Loukas如果它被中斷,您將更新它的下一個圓圈,直到更新完成並將其標記爲已更新。 – KudoCC

+0

你所建議的是一種解決方法。我正在尋找一種開箱即用的解決方案,它不涉及我更改我的同步代碼,並且不得不保存我執行的每個插入或更新的狀態和行號 – Loukas