Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用于我的数据库的SharedReferences_Android_Sqlite_Gps_Sharedpreferences - Fatal编程技术网

Android 用于我的数据库的SharedReferences

Android 用于我的数据库的SharedReferences,android,sqlite,gps,sharedpreferences,Android,Sqlite,Gps,Sharedpreferences,我试图创建一个应用程序,存储DDMS从KML文件接收的GPS数据;数据存储在Sqlite数据库中,我的主要问题是每次运行应用程序时 我在数据库中存储了相同的GPS数据,我的数据库里也是一团糟。现在有人说我可以使用SharedReferences来存储一个键,告诉我数据库是否已经存在,假设数据库已经存在,那么数据库已经满了。问题是我使用SqliteBrowser来创建我的数据库和选项卡,我使用代码向选项卡添加信息。所以简单地说验证选项卡是否存在对我没有太大帮助。有人知道如何管理Sqlite数据库以

我试图创建一个应用程序,存储DDMS从KML文件接收的GPS数据;数据存储在Sqlite数据库中,我的主要问题是每次运行应用程序时
我在数据库中存储了相同的GPS数据,我的数据库里也是一团糟。现在有人说我可以使用SharedReferences来存储一个键,告诉我数据库是否已经存在,假设数据库已经存在,那么数据库已经满了。问题是我使用SqliteBrowser来创建我的数据库和选项卡,我使用代码向选项卡添加信息。所以简单地说验证选项卡是否存在对我没有太大帮助。有人知道如何管理Sqlite数据库以避免存储两次相同的数据吗?

有几种可能的解决方案

1) 在插入新数据之前检查数据是否已经存在(一个简单的select语句)

2) 使用SQLiteOpenHelper-它提供数据库版本管理功能

3) 保存有关在SharedReferences中添加的内容的信息。为了区分数据库的不同状态,可以使用版本代码或类似的代码


我建议您使用1或2,这取决于您真正想要实现的目标。也许您可以更具体地说明为什么数据会在此时插入多次,它是什么类型的数据(静态或动态创建的,web服务等?

是的,我可以。嗯,很简单。我正在创建一个包含两部分的应用程序:1)跟踪:这意味着我必须模拟GPS模块,通过DDMS使用KML文件来实现。我模拟两个城市之间的GPS数据,比方说,但同时,为了以后重建路由,我必须存储这些数据。因此,我存储的数据是经度和纬度……每次运行应用程序时,我都会将这些数据存储在数据库中(不是我想要的)…但是,一旦我模拟了两个城市之间的GPS,并且我曾经运行应用程序来改变一些微小的东西,数据会再次存储在2)路线部分,在该部分中,我使用先前存储的数据来重新生成GPS数据的路径(汽车的路径……因此,如果我的数据存储了几次,我的数据库被毁了…我希望我已经很清楚了。谢谢!好的,基本上你想记录跟踪数据,然后再回放。数据库中任何时候都应该有多个路由吗?如果没有-选择1或3-检查数据是否存在,只有在没有可用数据时才插入数据。否则我会建议更高级的方法-使用第二个“路线”表,在该表中维护记录的路线并检查重复的路线。在数据库中应该有多条路线。我必须模拟大约8辆车的运动…尽管目前我不知道这怎么可能,因为我不能在DDMS中一次加载8个不同的KML文件。但是,最终,应该有大约8个表,每个表都描述了一条路线……高级方式对我来说有点太多了,因为我只做了几周。谢谢你,顺便问一下,我如何验证数据库中的表是否已满,这对我有很大帮助?!谢谢