我正在开发一个应用程序,当我尝试更新某些信息(如用户个人信息)时,我再次呼叫用户信息服务以获取更新的数据,但不是更新数据,而是显示旧数据。当我从应用程序注销并再次登录时,它只显示更新的数据,因为在注销时我删除了所有表值,并在登录时从服务器获取新值。我不知道你发生这种情况请帮助我解决这个问题。
这是我如何将数据保存到来自服务器的数据库 这是DBHandler类
public boolean SaveUserData(ContentValues values , String tablename)
{
SQLiteDatabase dataBase = DatabaseHundler.open();
try{
if(dataBase != null)
{
if (values!= null)
{
dataBase.insertWithOnConflict(tablename,
BaseColumns._ID, values,
SQLiteDatabase.CONFLICT_REPLACE);
}
return true;
}
}catch(Exception e){}
return false;
}
修改
和Tables类代码是
public void InsertData(ContentValues values)
{
Controller.hundler.SaveUserData(values, TableName);
}
这就是我从JSON
获取数据并插入表格的方式:
JSONArray jArray = jObject.getJSONArray("data");
for (int i = 0; i < jArray.length(); i++) {
JSONObject dataObject = jArray.getJSONObject(i);
String valueForField;
ContentValues value = new ContentValues();
Controller control = (Controller) context.getApplicationContext();
for(int j=0; j<control.Table_user.colmnNames.size(); j++){
String key = control.Table_user.colmnNames.get(j);
valueForField = Utility.getStringFromJsonObject(dataObject, key);
String type = (valueForField.equalsIgnoreCase("null"))? "" : valueForField;
value.put(control.Table_user.colmnNames.get(j), type);
}
control.Table_user.InsertData(value);
}