通过网络来获取和保存数据资源,这个方法需要设备保持网络连接状态,所以相对存在一些限制。将数据存储到网络上的方法很多,比如将要保存的数据以文件的方式上传到服务器、发送邮件等等。本节我们将在应用程序退出时,将数据发送到电子邮件中备份,要发送电子邮件首先需要在模拟器中配置电子邮件账户。下面我们就一步一步来配置电子邮件账户。
(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);
}
}
|
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);
}
}
|
到这里,我们把Android的Network数据存储就全部讲完了,谢谢阅读。