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
- LeanCould 初体验
- 初体验
- 初体验
- 初体验
- 初体验
- 初体验
- 初体验
- 初体验
- [体验]windows 8.1 update 1初体验
- JBUILDER X 初体验
- C#Builder初体验
- JBUILDERX 初体验
- ASP.net初体验
- DBA初体验
- Web标准初体验
- Longhorn初体验
- Statspack之初体验
- Delphi2005初体验
- wav音频文件格式解析
- 【Mysql之自我练习<二>】select查询(注:私用的,为了不遗失)
- Oracle DBMS占用大量内存的解决方法
- UVA 1589 Xiangqi 直接模拟 提交了近50次要跪。。
- 模拟考试9.3-笨笨连线游戏(route.cpp)
- LeanCould 初体验
- 本人的第一篇博客
- Ehcache 常用配置
- 二叉树的非递归遍历
- 输出平行四边形图案
- 配置tomcat8
- ArrayList与Vector和HashMap与Hashtable
- 计算机网络概述
- Struts 2 拦截器应用--对运行时间较长视图界面的处理