LeanCould 初体验

来源:互联网 发布:win10对e3有优化吗 编辑:程序博客网 时间:2024/05/19 12:16

首先肯定是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
原创粉丝点击