根据官方文档,自己做测试,在同一个例子中其他按钮的新建表或者查询都能实现,因此,Demo本身没有问题,能够实现和后台数据库的连接,但是在更新这块遇到问题,代码如下:
java
bt_update = (Button) findViewById(R.id.bt_main_update); bt_update.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { //这里的userInfo表之前已经建立过 AVObject updateObject = new AVObject("userInfo"); AVQuery<AVObject> upQuery = new AVQuery<AVObject>("userInfo"); try { //通过查询对应的objectId,获得AVObject对象 updateObject = upQuery.get("555566eee4b0a343c5be43b7"); //执行更新操作 updateObject.put("nickName", "测试更新"); //执行保存操作 updateObject.saveInBackground(new SaveCallback() { @Override public void done(AVException arg0) { if (arg0 == null) { System.out.println("--update successfully"); } else { System.out.println("--update failed"); } } }); } catch (AVException e) { System.out.println("--update error"); e.printStackTrace(); } } });
通过上述代码,并不能实现更新操作,而是显示update error,如下:
新手求解,各位大大 T_T
已解决,自己犯了个迷糊。又犯了“网络操作不能在MainThread中进行”的低级错误T_T
查询的get操作是网络操作,所以应该在后台进行,所以应该使用upQuery.getInBackground()方法。。。
嗯,涉及到网络操作,就应该多注意这点。。。