Android之网络数据存储
可以使用网络来保存数据,在需要的时候从网络上获取数据,进而显示在App中。
用网络保存数据的方法有很多种,对于不同的网络数据采用不同的上传与获取方法。
本文利用LeanCloud来进行网络数据的存储。
LeanCloud是一种简单高效的数据和文件存储服务。感兴趣的可以查看网址:https://leancloud.cn/。关于LeanCloud的数据存储使用方法可以在里面找到,本文不讲述关于LeanCloud的使用,知识借助LeanCloud平台举一个在网络上存储数据的例子。
二、使用方法1.上传数据AVObjectpersonObject=newAVObject(TABLENAME);personObject.put(NAME,person.name);personObject.put(AGE,person.age);personObject.put(INFO,person.info);personObject.saveInBackground(newSaveCallback(){@Overridepublicvoiddone(AVExceptione){if(e==null){Log.v(TAG,"putdatasuccess!");}else{Log.v(TAG,"putdatafailed!error:"+e.getMessage());}}});
2. 读取数据AVQuery<AVObject>avQuery=newAVQuery<>(TABLENAME);avQuery.findInBackground(newFindCallback<AVObject>(){@Overridepublicvoiddone(List<AVObject>list,AVExceptione){if(e==null){Log.v(TAG,"getdatasuccess!");Stringmessage="";for(inti=0;i<list.size();i++){Stringname=list.get(i).getString(NAME);intage=list.get(i).getInt(AGE);Stringinfo=list.get(i).getString(INFO);message+="name:"+name+",age:"+age+",info:"+info+".\n";}textView.setText(message);}}});
三、小案例1.添加strings.xml文件<stringname="network">Network</string><stringname="get_data">获取数据</string><stringname="put_data">上传数据</string>2.修改activity_main.xml文件
<?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>
packagecom.zhangmiao.datastoragedemo;importandroid.util.Log;importandroid.widget.TextView;importcom.avos.avoscloud.AVException;importcom.avos.avoscloud.AVObject;importcom.avos.avoscloud.AVQuery;importcom.avos.avoscloud.FindCallback;importcom.avos.avoscloud.SaveCallback;importjava.util.List;/***Createdbyzhangmiaoon2016/12/22.*/publicclassNetworkDBManager{privatestaticfinalStringTAG="NetworkDBManager";privatefinalstaticStringTABLENAME="person";privatefinalstaticStringNAME="name";privatefinalstaticStringAGE="age";privatefinalstaticStringINFO="info";publicvoidputData(Personperson){AVObjectpersonObject=newAVObject(TABLENAME);personObject.put(NAME,person.name);personObject.put(AGE,person.age);personObject.put(INFO,person.info);personObject.saveInBackground(newSaveCallback(){@Overridepublicvoiddone(AVExceptione){if(e==null){Log.v(TAG,"putdatasuccess!");}else{Log.v(TAG,"putdatafailed!error:"+e.getMessage());}}});}publicvoidgetData(finalTextViewtextView){AVQuery<AVObject>avQuery=newAVQuery<>(TABLENAME);avQuery.findInBackground(newFindCallback<AVObject>(){@Overridepublicvoiddone(List<AVObject>list,AVExceptione){if(e==null){Log.v(TAG,"getdatasuccess!");Stringmessage="";for(inti=0;i<list.size();i++){Stringname=list.get(i).getString(NAME);intage=list.get(i).getInt(AGE);Stringinfo=list.get(i).getString(INFO);message+="name:"+name+",age:"+age+",info:"+info+".\n";}textView.setText(message);}}});}}
4.修改AndroidManifest.xml文件<uses-permissionandroid:name="android.permission.INTERNET"/><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>5.修改MainActivity
android.net.*MainActivityAppCompatActivity"MainActivity","onCreate","yMNUazdBt872mNtC9aSakjYy-gzGzoHsz","d4vw3VYdMCjLpsXRhHTBRutC"=====Person("xiao",23,"women"=Person("zhao",24,"men""MainActivity","default"
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。