LeanCould 初体验

首先肯定是LeanCould的官网了https://leancloud.cn

集成文档在这里https://leancloud.cn/docs

虽然网上都在吐槽他文档的垃圾.不过简单入门还是可以的

下载 SDK,将下载后的文件解压缩后的所有 jar 文件放入 Android 项目的 libs 目录。如果你们的项目没有 libs 目录,那么就在项目的根目录下创建一个,通过右键点击项目 Project,选择 New,接下来点击Folder 菜单即可创建新目录。

在 Application 的 onCreate 方法调用 AVOSCloud.initialize 来设置您应用的 Application ID 和 Key:

public void onCreate() {
    //如果使用美国节点,请加上这行代码 AVOSCloud.useAVCloudUS();
    AVOSCloud.initialize(this, " Application ID ", "Key");
}
 
 

创建应用后,可以在 控制台 > 应用设置 里面找到应用对应的 id 和 key。

同时,你的应用需要请求 INTERNET 和 ACCESS_NETWORK_STATE 权限,如果没有设置,请添加下列两行到你的 AndroidManifest.xml 文件里的 <application> 标签前:

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

如果你想跟踪统计应用的打开情况,添加下列代码到你的主 Activity 的 onCreate 方法:

AVAnalytics.trackAppOpened(getIntent());
 
 

接下来可以尝试测试一段代码,拷贝下列代码到你的 app 里,比如放到 Application.onCreate 方法:

AVObject testObject = new AVObject("TestObject");
testObject.put("foo", "bar");
testObject.saveInBackground();
 
 

运行你的 app。一个类 TestObject 的新对象将被发送到 LeanCloud 并保存下来。当你做完这一切,访问 控制台 - 数据管理 可以看到上面创建的 TestObject 的相关数据。

下面就是我自己的测试App了.也算是自己的简单入门吧

package com.example.gk.testlearncloud;

import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.alibaba.fastjson.JSON;
import com.avos.avoscloud.AVException;
import com.avos.avoscloud.AVObject;
import com.avos.avoscloud.AVQuery;
import com.avos.avoscloud.FindCallback;
import com.avos.avoscloud.SaveCallback;
import com.example.gk.testlearncloud.bean.ResponseItemBean;

import java.util.List;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button btn_save;
    private Button btn_query;
    private TextView txt_content;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initEvent();
    }

    private Toast toast;

    private void initEvent() {
        btn_save.setOnClickListener(this);
        btn_query.setOnClickListener(this);
        toast = Toast.makeText(MainActivity.this, "", Toast.LENGTH_SHORT);
    }

    private void initView() {
        btn_save = (Button) findViewById(R.id.btn_save);
        btn_query = (Button) findViewById(R.id.btn_query);
        txt_content = (TextView) findViewById(R.id.txt_content);
    }


    private ProgressDialog progressDialog;

    /**
     * 隐藏加载中的dialog
     */
    private void dissmissProgressDialog() {
        if (null != progressDialog && progressDialog.isShowing()) {
            progressDialog.dismiss();
        }
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_save:
                progressDialog = ProgressDialog.show(MainActivity.this, "保存", "正在发疯保存中...");
                createObject();
                break;
            case R.id.btn_query:
                progressDialog = ProgressDialog.show(MainActivity.this, "查询", "正在发疯查询中...");
                queryObject();
                break;
        }
    }

    public static final String TABLE_NAME = "TestObject";//表格的名称
    public static int position = 10086;

    /**
     * 创建对象并存储数据
     */
    private void createObject() {
        AVObject testObject = new AVObject(TABLE_NAME);
        testObject.put("foo", "bar");
        testObject.put("name", "imgod");
        testObject.put("sex", "男");
        testObject.put("age", position++);
        testObject.saveInBackground(new SaveCallback() {
            @Override
            public void done(AVException e) {
                dissmissProgressDialog();
                if (e == null) {
                    toast.setText("存储成功");
                    toast.show();
                } else {
                    toast.setText("存储失败");
                    toast.show();
                }
            }
        });
    }

    /**
     * 查询对象
     */
    private void queryObject() {
        AVQuery query = new AVQuery(TABLE_NAME);
        query.findInBackground(new FindCallback() {
            @Override
            protected void internalDone0(Object o, AVException e) {
                dissmissProgressDialog();
                if (e == null) {
                    // Success, see count variable
                    resolveQueryResponse(o.toString());
                } else {
                    // Failed
                    Log.e("query", "error:" + e.getCode() + e.getMessage());
                }
            }

            @Override
            public void done(List list, AVException e) {
                dissmissProgressDialog();
                if (e == null) {
                    // Success, see count variable
                    Log.e("query", "count:" + list.size());
                } else {
                    // Failed
                    Log.e("query", "error");
                }
            }
        });
    }

    /**
     * 解析得到的对象集合json串
     *
     * @param content
     */
    private void resolveQueryResponse(String content) {
        Log.e("resolveQueryResponse", content);
        content = content.replaceAll("@type", "type");//屏蔽@type
        Log.e("resolveQueryResponse", content);
        List<ResponseItemBean> tempList = JSON.parseArray(content, ResponseItemBean.class);
        Log.e("resolveQueryResponse", "当前服务器共有" + tempList.size() + "条数据");
        toast.setText("当前服务器共有" + tempList.size() + "条数据");
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("当前服务器共有" + tempList.size() + "条数据\n");
        toast.show();
        for (int i = 0; i < tempList.size(); i++) {
            ResponseItemBean av = tempList.get(i);
            Log.e("resolveQueryResponse", "test:" + av.toString());
            stringBuilder.append("position:" + i + "\t\t\t" + av.toString() + "\n");
        }
        txt_content.setText(stringBuilder.toString());
    }

}

demo github地址: https://github.com/imgod1/TestLearnCloud



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值