LeanCloud数据存储

在LeanCloud官网登陆后创建应用获取ID和key。下载android sdk的几个jar包。

导入到安卓工程的libs目录下。创建一个类继承Application。重写oncreate方法,定义ID和key,并调用AVOSCloud的initialize方法,传入this、id和key。可以加上AVOSCloud的useAVCloudCN方法。

记得Application类要像四大组件一样!!需要注册。


用LeanCloud需要两个权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />


LeanCloud数据的存储:

AVObject avObject = new AVObject("test");
avObject.put("key1",key1);
avObject.put("key2",key2);
avObject.saveInBackground(new SaveCallback() {
    @Override
    public void done(AVException e) {
        if (e == null) {
            Toast.makeText(AddActivity.this, "数据保存成功!", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(AddActivity.this, "数据保存失败!e:"+e, Toast.LENGTH_SHORT).show();
        }
    }
});
new一个AVObject,传入表名。使用put方法将要存储的键值对传进来。

最后调用saveInBackground方法保存起来,传入一个回调。当异常e为空时代表数据保存成功。



LeanCloud数据的查询:

AVQuery<AVObject> avQuery = new AVQuery<>("test");
avQuery.findInBackground(new FindCallback<AVObject>() {
    @Override
    public void done(List<AVObject> list, AVException e) {
        ArrayList<QueryItemBean>  querylist = new ArrayList<QueryItemBean>();
        for (AVObject obj : list){
            QueryItemBean item = new QueryItemBean();
            item.setValue1(obj.getString("key1"));
            item.setValue2(obj.getString("key2"));

            querylist.add(item);
        }
        lv.setAdapter(new QueryListAdapter(getApplicationContext(),R.layout.query_list,querylist));
new一个AVQuery传入一个要查询的表名。调用findInBackground方法,传入一个find回调。

这里将查询到的数据用ListView显示出来,因为ListView需要数据源和适配器,所以创建了个bean对象里面是value1和value2的get和set方法。

创建一个ArrayList通过每次高级for循环出来的数据添加进来,最后赋给ListView展示数据。

ps:创建ListView的适配器时,继承ArrayList构造方法传入上下文、布局文件id、list数据源。



AVObject 支持以下数据类型:

+

        boolean bool = true;
        int number = 2015;
        String string = number + " 年度音乐排行";
        Date date = new Date();

        byte[] data = "短篇小说".getBytes();
        ArrayList<Object> arrayList = new ArrayList<>();
        arrayList.add(number);
        arrayList.add(string);
        HashMap<Object, Object> hashMap = new HashMap<>();
        hashMap.put("数字", number);
        hashMap.put("字符串", string);

        AVObject object = new AVObject("DataTypes");
        object.put("testBoolean", bool);
        object.put("testInteger", number);
        object.put("testDate", date);
        object.put("testData", data);
        object.put("testArrayList", arrayList);
        object.put("testHashMap", hashMap);
        object.saveInBackground();
 
 
+

此外,HashMap 和 ArrayList 支持嵌套,这样在一个 AVObject 中就可以使用它们来储存更多的结构化数据。

+

我们不推荐在 AVObject 中使用 byte[] 来储存大块的二进制数据,比如图片或整个文件。每个 AVObject 的大小都不应超过 128 KB。如果需要储存更多的数据,建议使用 AVFile

+

leancloud文档 :   https://leancloud.cn/docs/leanstorage_guide-android.html  



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值