一、网络保存数据介绍
可以使用网络来保存数据,在需要的时候从网络上获取数据,进而显示在App中。
用网络保存数据的方法有很多种,对于不同的网络数据采用不同的上传与获取方法。
本文利用LeanCloud来进行网络数据的存储。
LeanCloud是一种简单高效的数据和文件存储服务。感兴趣的可以查看网址:https://leancloud.cn/。关于LeanCloud的数据存储使用方法可以在里面找到,本文不讲述关于LeanCloud的使用,知识借助LeanCloud平台举一个在网络上存储数据的例子。
二、使用方法
1.上传数据
AVObject personObject = new AVObject(tablename); personObject.put(name,person.name); personObject.put(AGE,person.age); personObject.put(INFO,person.info); personObject.saveInBackground(new SaveCallback() { @OverrIDe public voID done(AVException e) { if (e == null) { Log.v(TAG,"put data success!"); } else { Log.v(TAG,"put data Failed!error:" + e.getMessage()); } } });
2. 读取数据
AVquery<AVObject> avquery = new AVquery<>(tablename); avquery.findInBackground(new FindCallback<AVObject>() { @OverrIDe public voID done(List<AVObject> List,AVException e) { if (e == null) { Log.v(TAG,"get data success!"); String message = ""; for (int i = 0; i < List.size(); i++) { String name = List.get(i).getString(name); int age = List.get(i).getInt(AGE); String info = List.get(i).getString(INFO); message += "name:" + name + ",age:" + age + ",info:" + info + ".\n"; } textVIEw.setText(message); } } });
三、小案例
1.添加strings.xml文件
@H_404_47@ <string name="network">Network</string> <string name="get_data">获取数据</string> <string name="put_data">上传数据</string>2.修改activity_main.xml文件
@H_404_47@<?xml version="1.0" enCoding="utf-8"?><androID.support.design.Widget.CoordinatorLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:tools="http://schemas.androID.com/tools" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:fitsSystemwindows="true"tools:context="com.zhangmiao.datastoragedemo.MainActivity"> <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:orIEntation="vertical"> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content"androID:layout_gravity="center_horizontal" androID:text="@string/network" /> <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="wrap_content"androID:layout_marginBottom="@dimen/fab_margin"androID:layout_margintop="@dimen/fab_margin" androID:orIEntation="horizontal"> <button androID:ID="@+ID/network_put" androID:layout_wIDth="0dp" androID:layout_height="wrap_content" androID:layout_weight="1" androID:text="@string/put_data" /> <button androID:ID="@+ID/network_get" androID:layout_wIDth="0dp" androID:layout_height="wrap_content" androID:layout_weight="1" androID:text="@string/get_data" /> </linearLayout> <TextVIEw androID:ID="@+ID/table_info" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:text="@string/app_name" /> </linearLayout></androID.support.design.Widget.CoordinatorLayout>3.添加NetworkDBManager类
package com.zhangmiao.datastoragedemo;import androID.util.Log;import androID.Widget.TextVIEw;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 java.util.List;/** * Created by zhangmiao on 2016/12/22. */public class NetworkDBManager { private static final String TAG = "NetworkDBManager"; private final static String tablename = "person"; private final static String name = "name"; private final static String AGE = "age"; private final static String INFO = "info"; public voID putData(Person person) { AVObject personObject = new AVObject(tablename); personObject.put(name,"put data Failed!error:" + e.getMessage()); } } }); } public voID getData(final TextVIEw textVIEw) { AVquery<AVObject> avquery = new AVquery<>(tablename); avquery.findInBackground(new FindCallback<AVObject>() { @OverrIDe public voID done(List<AVObject> List,info:" + info + ".\n"; } textVIEw.setText(message); } } }); }}
4.修改AndroIDManifest.xml文件
@H_404_47@ <uses-permission androID:name="androID.permission.INTERNET" /> <uses-permission androID:name="androID.permission.ACCESS_NETWORK_STATE"/>5.修改MainActivity
package com.zhangmiao.datastoragedemo;import androID.content.ContentResolver;import androID.content.ContentValues;import androID.database.Cursor;import androID.net.*;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 com.avos.avoscloud.AVOSCloud;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements VIEw.OnClickListener {private NetworkDBManager mNetworkDBManager; private TextVIEw mtableInfo; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { Log.v("MainActivity","onCreate"); super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); AVOSCloud.initialize(this,"yMNUazdBt872mNtC9aSakjYy-gzGzoHsz","d4vw3VYdMCjLpsXRhHTBRutC"); mNetworkDBManager = new NetworkDBManager(); button networkGet = (button) findVIEwByID(R.ID.network_get); button networkPut = (button) findVIEwByID(R.ID.network_put); mtableInfo = (TextVIEw) findVIEwByID(R.ID.table_info); networkGet.setonClickListener(this); networkPut.setonClickListener(this); } @OverrIDe public voID onClick(VIEw v) { switch (v.getID()) {case R.ID.network_put: Person person3 = new Person("xiao",23,"women"); Person person4 = new Person("zhao",24,"men"); mNetworkDBManager.putData(person3); mNetworkDBManager.putData(person4); break; case R.ID.network_get: mNetworkDBManager.getData(mtableInfo); break; default: Log.v("MainActivity","default"); break; } }}
下载地址:http://xiazai.jb51.net/201612/yuanma/DataStorageDemo-master_jb51.rar
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!
总结以上是内存溢出为你收集整理的详解Android的网络数据存储全部内容,希望文章能够帮你解决详解Android的网络数据存储所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)