Android数据存储之Network

本文介绍如何在Android应用中实现网络数据的存取操作,包括发送数据至邮箱及从网络读取文件并显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过网络来获取和保存数据资源,这个方法需要设备保持网络连接状态,所以相对存在一些限制。将数据存储到网络上的方法很多,比如将要保存的数据以文件的方式上传到服务器、发送邮件等等。本节我们将在应用程序退出时,将数据发送到电子邮件中备份,要发送电子邮件首先需要在模拟器中配置电子邮件账户。下面我们就一步一步来配置电子邮件账户。

(1)启动模拟器,打开“菜单”,选择“电子邮件”项,在启动之后,填写好邮件地址和密码,选中“默认情况下从该帐户发送电子邮件”。如图6-5所示。
(2)点击“下一步”按钮,程序将自动配置电子邮件的相关信息。如图6-6所示。

(3)等待自动配置完成后,设置好名称等相关信息,如图6-7所示。点击“完成”,电子邮件配置成功。

配好电子邮件账户之后,我们就可以通过程序来调用模拟器的电子邮件客户端发送邮件了。Android中发送电子邮件是通过startActivity方法来调用要发送的邮件数据的Intent。我们可以通过putExtra方法来设置邮件的主题、内容、附件等等。具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.yarin.android.Examples_06_03;
 
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 ;
     /** Called when the activity is first created. */
     @Override
     public 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:fengsheng.studio@hotmail.com"); 
             
             /* 创建Intent */
             Intent it = new Intent(Intent.ACTION_SENDTO, uri); 
             
             /* 设置邮件的主题 */
             it .putExtra(android.content.Intent.EXTRA_SUBJECT, "数据备份");
             
             /* 设置邮件的内容 */
             it .putExtra(android.content.Intent.EXTRA_TEXT, "本次计数:"+miCount);
             
             /* 开启 */
             startActivity(it);
             
             this .finish();
             return true ;
         }
         return super .onKeyDown(keyCode, event);
     }
}
既然可以将数据发送到网络上保存,当然也可以获得网络上的数据,下面我们通过网络来读取一个文件的内容,然后将其显示到TextView中,这就需要一个网络服务器来存储我们的文件,为了方便起见,我们在本机架设了一个Web服务器。这里我们从http://192.168.1.110:8080/android.txt读取文件数据。具体操作代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package com.yarin.android.Examples_06_04;
 
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 Activity01 extends Activity
{
     /** Called when the activity is first created. */
     @Override
     public 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.1.110:8080/android.txt");
             
             /* 打开这个url连接 */
             URLConnection ucon = uri.openConnection();
             
             /* 从上面的链接中取得InputStream */
             InputStream is = ucon.getInputStream();
             
             BufferedInputStream bis = new BufferedInputStream(is);
             ByteArrayBuffer baf = new ByteArrayBuffer(100);
             int current = 0;
             /* 一直读到文件结束 */
             while ((current = bis.read()) != -1)
             {
                 baf.append((byte) current);
             }
             myString = new String(baf.toByteArray());
         }
         catch (Exception e)
         {
 
             myString = e.getMessage();
         }
         /* 将信息设置到TextView */
         tv.setText(myString);
         
         /* 将TextView显示到屏幕上 */
         this .setContentView(tv);
 
     }
}
由于在程序中访问了外部网络,我们需要在AndroidManifest.xml文件中给予权限,代码如下:


到这里,我们把Android的Network数据存储就全部讲完了,谢谢阅读。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值