当前位置: 移动技术网 > 移动技术>移动开发>Android > 详解Android的网络数据存储

详解Android的网络数据存储

2019年07月24日  | 移动技术网移动技术  | 我要评论

一、网络保存数据介绍

可以使用网络来保存数据,在需要的时候从网络上获取数据,进而显示在app中。

用网络保存数据的方法有很多种,对于不同的网络数据采用不同的上传与获取方法。

本文利用leancloud来进行网络数据的存储。

leancloud是一种简单高效的数据和文件存储服务。感兴趣的可以查看网址:。关于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文件

 <string name="network">network</string>
 <string name="get_data">获取数据</string>
 <string name="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>

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, 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());
 }
 }
 });
 }
 public void getdata(final textview textview) {
 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);
 }
 }
 });
 }
}

4.修改androidmanifest.xml文件

 <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;
 }
 }
}

下载地址:

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持移动技术网!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网