Android应用开发——实验五 下载本文

内容发布更新时间 : 2024/12/25 10:56:29星期一 下面是文章的全部内容请认真阅读。

1.1 实验要求

1) 学习使用4种数据存储的方式; 2) 熟练SQLite数据库的使用;

3) 学习使用Content Providers来实现各个不同应用程序之间数据的传递

和共享。 1.2

实验主要步骤

1) 阅读文献《Android应用开发揭秘》第六章,了解数据存储的基本方法; 2) 运行示例程序,分析程序代码,学习使用Shared Preferences、Files、

Network等数据存储技术;

3) 阅读文献,了解SQLite数据库;

4) 运行示例程序,分析程序代码,学习SQLite编程,熟练SQLite数据库

的基本操作;

5) 运行示例程序,分析程序代码,熟练使用Content Providers,学习查

询数据、修改数据、添加数据、删除数据、创建Content Provider等方法。

实验五

姓名:马征 学号:2011303502 班级:14011107 一、Android中的数据存储基本方法 1、 Android数据储存初步了解

通过学习,我了解到,数据存储时程序最为基本的问题,所有的企业系统和应用软件都必须解决这个问题,数据存储必须用一种合理的方式来保存,在保证数据不能丢失的前提条件下,可以有效、简便的使用和更新这些数据。

在Android中,我通过阅读pdf了解到一共提供了四中数据存储方式,然而由于存储的数据都是应用程序私有的,所以在其他的应用程序使用这些数据的时候,需要使用Android提供的Content Providers,先列举四种数据存储方式: Shared Preferences Flies 用来存数“key-value paries”格式的数据,是一个轻量级的键值存储机制,只可以存储基本的数据类型 通过FileInputStream和FileOutputStream对文件惊醒操作,但是在Android中,文件是一个应用程序私有的,所以一个应用程序无法读写其他应用程序的文件 Android提供的一个标准的数据库文件,支持SQL语句 通脱网络来存储和获得数据 SQLite Network 这四种存储方式的特点:

Shared Preferences:主要针对系统配置信息的保存。

Files:包需要保存的东西通过文件的形式记录下来,当需要这些数据的时候,通过读取这个文件来获取这些数据。Ps:由于Android是Linux核心的,所以在Android中,文件也是Linus的形式

SQLite:是一个开源的关系型数据库,具有ACID的特性,可以用来存储大量的数据,并且

能够容易的对数据进行使用、更新、维护。

Network:用于将数据存储于网络,需要使用java.net.*和android .net.*类。

2、 Android数据存储中的SharedPreferences

Shared Preferences类似于常用的ini文件,保存应用程序的属性设置。 通过getPreferences()方法来获得Preferences对象

通过“SharedPreferences.Editor editor = uiState.edit();”取得编辑对象 通过“editor.put()”方法添加数据

通过commit()方法保存这些数据。

通过Activity。getPreferences()保存数据私有。

public class Activity01 extends Activity {

/* 装载数据 */

// 取得活动的preferences对象.

SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE);

mMIDIPlayer = new MIDIPlayer(this);

mTextView = (TextView) this.findViewById(R.id.TextView01); /** Called when the activity is first created. */ @Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState); setContentView(R.layout.main); private MIDIPlayer mMIDIPlayer = null; private boolean private TextView

mbMusic

= false;

mTextView = null;

}

// 取得值.

mbMusic = settings.getBoolean(\, false); if (mbMusic) { } else { }

mTextView.setText(\当前音乐状态:关\); mTextView.setText(\当前音乐状态:开\); mbMusic = true;

mMIDIPlayer.PlayMusic();

public boolean onKeyDown(int keyCode, KeyEvent event) { }

if (keyCode == KeyEvent.KEYCODE_BACK) { }

return super.onKeyDown(keyCode, event);

/* 这里我们在推出应用程序时保存数据 */ // 取得活动的preferences对象.

SharedPreferences uiState = getPreferences(0); // 取得编辑对象

SharedPreferences.Editor editor = uiState.edit(); // 添加值

editor.putBoolean(\, mbMusic);

// 提交保存 editor.commit(); if ( mbMusic ) { }

this.finish(); return true;

mMIDIPlayer.FreeMusic();