Android数据储存之Network
Android数据存储之Network这篇文章是转载的。。。http://byandby.iteye.com/blog/833612???这篇文章演示2个例
Android数据存储之Network
这篇文章是转载的。。。
http://byandby.iteye.com/blog/833612
?
?
?
这篇文章演示2个例子 一个是发送电子邮件,一个是我们从网络上获取数据,然后显示在一个TextVew上。
通过网络来获取和保存数据资源,这个方法需要设备保持网路连接状态,所以相对存在一些限制。将数据存储到网络上的方法很多,比如将要保存的数据以文件的方式上传到服务器、发送邮件等等。在我们的这个示例中演示的是我们将在应用程序退出时,将数据发送到电子邮件中备份,要发送电子邮件首先需要在电子邮件中配置电子邮件账户。下面我们就来一步一步配置电子邮件账户。
大家去菜单里边点击电子邮件来进行配置,这里就不详细说了 具体流程看一下图片吧。
配置好电子邮件后,我们就可以通过程序来调用模拟器的电子邮件客户端发送邮件了。Android中发送电子邮件是通过 startActivity 方法来调用要发送的邮件数据的 Intent。我们可以通过putExtra 方法来设置邮件的主题、内容、附件等等。当我们点击返回按钮----> back的时候,就会出现发送邮件的界面如下图
当我们点击发送的时候就会发送到我的邮箱一封邮件 我截了图
下面我们就来看看这个发送邮件的功能是怎么实现的吧。
Activity01类
package xiaohang.zhimeng;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.KeyEvent;public class Activity01 extends Activity {private int miCount = 0;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);miCount = 1000;}public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {// 退出应用程序时保存数据/* 发送邮件的地址 */Uri uri = Uri.parse("mailto:yongjinquanli@gmail.com");// 创建IntentIntent it = new Intent(Intent.ACTION_SENDTO, uri);// 设置邮件的主题it.putExtra(android.content.Intent.EXTRA_SUBJECT, "数据备份");// 设置邮件的内容it.putExtra(android.content.Intent.EXTRA_TEXT, "本次计数:" + miCount);// 开启startActivity(it);return true;}return super.onKeyDown(keyCode, event);}}
既然可以将数据发送到网络上保存,当然也可以获得网络上的数据,下面我们就演示一下怎么通过网络来读取一个文件的内容,然后将其显示在我们事先定义好的 TextView上,这需要一个web服务器了。 我用了tomcat 。我们先看看要读取的文件的内容是什么。
我们来看一下是怎么实现的,这里提醒一下大家 用中文会有中文乱码问题需要解决一下,直接看代码吧。
Activity01
package xiaohang.zhimeng;import java.io.BufferedInputStream;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.widget.TextView;public class Activity01 extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);TextView tv = new TextView(this);String myString = null;try {/* 定义我们要访问的地址url */URL uri = new URL("http://192.168.0.100:8080/examples/xh.txt");/* 打开这个url */URLConnection uConnection = uri.openConnection();// 从上面的链接中取得InputStreamInputStream is = uConnection.getInputStream();// new 一个带缓冲区的输入流BufferedInputStream bis = new BufferedInputStream(is);/* 解决中文乱码 */byte[] bytearray = new byte[1024];int current = -1;int i = 0;while ((current = bis.read()) != -1) {bytearray[i] = (byte) current;i++;}myString = new String(bytearray, "GB2312");} catch (Exception e) {// 获取异常信息myString = e.getMessage();}// 设置到TextView颜色tv.setTextColor(Color.RED);// 设置字体tv.setTextSize(20.0f);tv.setText(myString);// 将TextView显示到屏幕上this.setContentView(tv);}}
下面我们来看看程序运行的效果。
由于在程序中访问了外部网络,我们需要在AndroidManifest.xml 文件中给予权限,代码如下:
<uses-permission android:name="android.permission.INTERNET" />
这2个例子的源码都在附件里边。