android从服务器重新加载数据会产生重复

时间:2014-04-14 08:30:50

标签: android sqlite android-sqlite

我正在开发一个应用程序,当我尝试更新某些信息(如用户个人信息)时,我再次呼叫用户信息服务以获取更新的数据,但不是更新数据,而是显示旧数据。当我从应用程序注销并再次登录时,它只显示更新的数据,因为在注销时我删除了所有表值,并在登录时从服务器获取新值。我不知道你发生这种情况请帮助我解决这个问题。

这是我如何将数据保存到来自服务器的数据库 这是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);
}

0 个答案:

没有答案