2013-05-27 18 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

相关问题