2017-03-21 25 views
1

請考慮以下情況。我有一個應用程序,它擁有大量的數據並保存到文件中。爲此,我在onPause方法中產生了一個AsyncTask。onPause()中的文件持續狀態需要很長的時間

問題是,它需要相當長的時間。用戶可能會關閉活動並重新啓動它,但是,在再次創建活動之前,文件未完全保存到磁盤。因此,在下次啓動時,活動包含不正確的數據。我該如何處理這個問題,即確保數據在下次啓動前完全保存到磁盤中?

+0

你在這些文件中保存了什麼?爲什麼不使用數據庫? –

+0

我使用gson,這很有用,因爲這些文件稍後會導出。在數據庫的情況下,是不是有同樣的問題(可能需要很長時間)? – AlexSee

回答

1

你只需要檢查你的數據是否已經存儲或沒有。很明顯,自定義標誌,「觸及」文件等。 使您的UI邏輯更加容易,以避免此問題。

+0

假設我使用觸摸文件,我怎樣才能確保抵禦可能出現的問題的彈性,比如:保存文件時我的應用程序被終止,權限有問題,我無法觸及文件等?換句話說,如何區分我正在等待文件被觸摸的情況和發生錯誤的情況? 另外,當我打開應用程序,我仍然在等待文件被觸摸時該怎麼辦?顯示進度條並檢查一些固定的時間間隔? – AlexSee

+0

在我的練習中,我使用前臺服務和start_sticky標誌 – Vyacheslav

+0

@AlexSee,我的意思是在我的代碼中,巨大的工作不是在活動內執行,而是在服務 – Vyacheslav