我开发了一个使用GCM技术的应用程序,一切都很好.
我观察到设备的注册ID在一段时间后发生了变化,这导致我的应用程序出现问题,因为我的应用程序依赖于Reg ID.
那么我如何为客户获得固定的Reg ID?
我写了一个应用程序来更新SQlite Db中的行,下面是数据处理程序中更新的代码:
public long updatedata(String ID, String NAME,String NUMBER)
{
ContentValues content = new ContentValues();
content.put(name, NAME);
content.put(number,NUMBER);
return db.update(table_name, content, "id "+"="+ID, null);
}
Run Code Online (Sandbox Code Playgroud)
现在当我需要更新我在下面的代码中使用的行时:
Datahandler data =new Datahandler();
data.open();
long updateresult = data.updatedata(oldID, cloudnames.get(pos), cloudnumbers.get(pos));
data.close();
Run Code Online (Sandbox Code Playgroud)
还假设上面提供的值是存在且有效的,并且我确信我的数据库中存在id = jo_2,问题是当我运行代码时,异常如下所示:
02-19 23:59:34.200: E/SQLiteLog(18485): (1) no such column: jo_2
02-19 23:59:34.205: W/dalvikvm(18485): threadid=11: thread exiting with uncaught exception (group=0x41b30c08)
02-19 23:59:34.210: E/AndroidRuntime(18485): FATAL EXCEPTION: IntentService[test-service]
02-19 23:59:34.210: E/AndroidRuntime(18485): Process: com.kaizendroid.bc, PID: 18485
02-19 23:59:34.210: E/AndroidRuntime(18485): android.database.sqlite.SQLiteException: no such column: jo_2 …Run Code Online (Sandbox Code Playgroud)