Android 小项目之--数据存储【Network】(附源码)

简介:

http://www.cnblogs.com/TerryBlog/archive/2010/06/20/1761411.html

将数据保存发送到电子邮件中备份,首要前提应该先在模拟器中设置好电子邮件帐户,设置如下:

  • 第一步,启动模拟器,打开“菜单”,选择“电子邮件”项,填写相应帐号和密码。
  • 第二步,点击NEXT,程序自动配置电子邮件相关信息。
  • 第三步,配置完成后,输入相应的名称信息,即可设置完成,接下来程序会默认帮你导入你输入邮箱帐号的相关信息

业务逻辑如下:示例中有一个文本框用来模拟用户的信息,当程序退出的时候保存文本档的信息,并转到发送邮件的页面,让用户把信息保存到邮箱 里面。具体代码参考如下:

package com.terry;

import android.app.Activity; 
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; 
import android.view.KeyEvent;
import android.widget.EditText;

public class networkActivity extends Activity { 
    private EditText myEditText;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
        
        myEditText=(EditText)findViewById(R.id.myEditText4); 
        
    }
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode==KeyEvent.KEYCODE_BACK)
        {
            //发送邮件地址
            Uri uri=Uri.parse("mailto:285735942@qq.com");
            //创建intent
            Intent it=new Intent(Intent.ACTION_SENDTO,uri);
            it.putExtra(android.content.Intent.EXTRA_SUBJECT, "网络存储");
            it.putExtra(android.content.Intent.EXTRA_TEXT, myEditText.getText());
            startActivity(it);
            this.finish();
            return true;
        }
        
        return super.onKeyDown(keyCode, event);
    }
}

扩展

既然发送数据保存到网络上,当然也可以获得网络上的数据,下面我们通过一个小例子来实现从网路上加载一个txt文件的小说程序 。如图:

逻辑代码如下:首先创建一个我们要访问的URL地址,然后取链接的文件,循环把数据读取出来。具体代码参考如下:

package com.terry;

import java.io.BufferedInputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

import org.apache.http.util.ByteArrayBuffer;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class readxmlActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.readxml);
        
        TextView tv=(TextView)findViewById(R.id.TextView01);
        
        String msg="";
        try {
            URL url=new URL("http://www.az1314.com/txt/00.txt"); //要访问的数据文件
            URLConnection con=url.openConnection();
            InputStream is=con.getInputStream();
            BufferedInputStream bis=new BufferedInputStream(is);
            ByteArrayBuffer baf=new ByteArrayBuffer(100);
            int current=0;
            while ((current=bis.read())!= -1) {
                 baf.append((byte)current);
            }
            msg=new String(baf.toByteArray());
            
        } catch (Exception e) {
            // TODO: handle exception
            msg=e.getMessage();
        }
        tv.setText(msg);
    }
}

方法讲解:

URL共有六种构造方法,分别如下:

  • URL(String spec)
    通过传进来的字符串分析,创建一个新的URL实例。
  • URL(URL context, String spec)
    通过传进来的字符串分析,创建一个新的URL实例。需要一个URL的参数
  • URL(URL context, String spec, URLStreamHandler handler)
    通过传进来的字符串分析,创建一个新的URL实例
  • URL(String protocol, String host, String file)
    使用给定的参数创建一个URL实例,需要指定协议,主机文件名
  • URL(String protocol, String host, int port, String file)
    使用给定的参数创建一个URL实例,需要指定协议,主机,端口和文件名
  • URL(String protocol, String host, int port, String file, URLStreamHandler handler)
    使用给定的参数创建一个URL实例,需要指定协议,主机,端口、文件名和处理程序

URLConnection介绍:

  • 用以来实现提供一个具有特定协议类的连接源。
  • getInputStream 主要用来读取一个URLConnection的资源数据,返回一个InputStream,本文将使用这个方法获取数据

在此不多介绍URLConnection此类,感兴趣的朋友可以查看一下SDK。代码如上,运行效果图:

因为在模拟器运行。 出现乱码了,如果你有真机不妨在真机上试试。

Tip: 访问外部网络需要在配置文件中给予权限,如果你没有权限将会出现如下界面:


配置文件中给予权限:

<uses-permission android:name="android.permission.INTERNET"/>


相关文章
|
12天前
|
JSON 编译器 开发工具
VS Code阅读Android源码
VS Code阅读Android源码
14 1
|
1月前
|
XML Java Android开发
Android实现自定义进度条(源码+解析)
Android实现自定义进度条(源码+解析)
56 1
|
1月前
|
Java Android开发
Android反编译查看源码
Android反编译查看源码
29 0
|
11天前
|
Java Android开发
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
Android系统 修改无源码普通应用为默认Launcher和隐藏Settings中应用信息图标
23 0
|
11天前
|
Linux 开发工具 Android开发
Docker系列(1)安装Linux系统编译Android源码
Docker系列(1)安装Linux系统编译Android源码
16 0
|
11天前
|
Android开发
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
Android源代码定制:添加customize.mk文件进行分项目和分客户的定制
3 0
|
11天前
|
安全 Java Shell
Android13 adb input 调试命令使用和源码解析
Android13 adb input 调试命令使用和源码解析
19 0
|
18天前
|
数据采集 小程序 数据可视化
Java Android原生智慧校园管理系统源码
对班牌的考试模式、班牌模式上课模式进行设置及管理,设置成功后,班牌端将同步应用。
23 0
|
18天前
|
存储 安全 Android开发
Android数据存储:请解释ContentProvider是什么,它的主要作用是什么?
ContentProvider是Android的四大组件之一,主要负责结构化数据的管理与共享。它封装数据并提供安全的访问接口,通过URI实现应用间数据的标准化共享。ContentResolver与ContentProvider协作,处理数据的CRUD操作,使得其他应用能方便地调用和操作数据。
18 0
|
19天前
|
传感器 小程序 Java
Java+saas模式 智慧校园系统源码Java Android +MySQL+ IDEA 多校运营数字化校园云平台源码
Java+saas模式 智慧校园系统源码Java Android +MySQL+ IDEA 多校运营数字化校园云平台源码 智慧校园即智慧化的校园,也指按智慧化标准进行的校园建设,按标准《智慧校园总体框架》中对智慧校园的标准定义是:物理空间和信息空间的有机衔接,使任何人、任何时间、任何地点都能便捷的获取资源和服务。
17 1