2013-05-27 14 views
1

我的應用程序是一個位置跟蹤器,可以每3分鐘查找一次設備的位置。它會檢索經緯度並將其存儲在一個sqlite數據庫中。如何在安裝後找到第一條記錄,並在啓動後找到第一條記錄。 例如,我將在db中爲record_type創建一個更多的列。在那裏,我將存儲代碼的狀態爲: 已安裝,onboot,正常。這怎麼可能實現。安裝並啓動後找出第一條記錄

+0

我嘗試設置標誌並將它們存儲在共享首選項中。在OnBootReceiver中,標誌= 1(對於引導中的第一條記錄)和標誌= 2(對於安裝後的第一條記錄)我正在對它們進行服務。但一旦flage被設置爲一個不會改變的值。對於每個記錄,它顯示相同的國旗 – user2310041

回答

0

對於安裝後的第一條記錄,您可以檢查SharedPreference的值,然後設置首選項。例如,如果「SP」是你的SharedPreferences對象,你這樣做:

boolean firstRecord = sp.getBoolean("firstRecord", true); 
sp.edit().putBoolean("firstRecord", false).commit(); 

然後SP會包含「真」執行該代碼的第一時間,虛假的其餘時間(假定用戶執行不是手動清除應用程序的數據)。

對於引導後的第一條記錄,可以使用接收ACTION_BOOT_COMPLETED事件的BroadcastReceiver。通過這種方式,您可以指定每次重新啓動設備時執行的代碼。當你得到這個事件,你也可以與SharedPreferences做類似的工作(SP是你的SharedPreferences對象):

sp.edit().putBoolean("justBooted", true).commit(); 

所以,如果你這樣做:

boolean firstRecordAfterBoot = sp.getBoolean("justBooted", false); 
sp.edit().putBoolean("justBooted", false).commit(); 

你就會知道,這是在引導後第一次執行此代碼。

+0

偉大。我會試試這個。謝謝 – user2310041

相關問題