我正在嘗試使我自己的gps-tracker,主要用於騎自行車。我設法制作了一個可用的應用程序,至少供個人使用,但我想改進它,並添加了ContentProvider,Fragments,CursorAdapters和一項服務以接收來自GPS的onLocationChanges。將gps-location保存到sqlite不斷
但是,我真的不知道如何處理我收到的位置流。我的舊應用程序只是將它們保存到一個ArrayList,所以現在我的服務正在向我的活動發送一個廣播,將它們保存到ArrayList中。
問題是,當騎行結束時,需要5-15秒將位置保存到sqlite(是的,我正在使用編譯語句和事務),我想避免這種情況,通過保存收到時的位置。當我試圖這樣做時,我的應用程序變得沒有響應(如預期的那樣),因爲我正在UI線程中進行插入操作,而且我經常收到位置更新。
這當然是應用程序最重要的方面,那麼解決方案是什麼?
我可以做插入一個線程,但由於插入一條記錄是昂貴的,我不知道它會跟上。
我可以在交易中一次寫入25條記錄(或更多),但是會有一些邏輯來跟蹤保存的內容和不保存的內容。
是否有更好的用戶體驗的其他選擇?
謝謝。這可能是需要考慮的事情,我認爲寫入文件而不是數據庫會更快。在錄製過程中是否保持文件打開? – 2012-03-06 09:26:36
是的,我在一個服務中寫入文件,並保持打開狀態。我不小心沖洗它。 – Ifor 2012-03-06 10:53:10