摘要: 对播放音频/视频文件和流的控制是通过一个状态机来管理的。下图显示一个MediaPlayer对象被支持的播放控制操作驱动的生命周期和状态。椭圆代表MediaPlayer对象可能驻留的状态。弧线表示驱动MediaPlayer在各个状态之间迁移的播放控制操作。这里有两种类型的弧线。由一个箭头开始的弧代表同步的方法调用,而以双箭头开头的代表的弧线代表异步方法调用。通过这张图,我们可以知道一个MediaPlayer对象有以下的状态:1)当一个MediaPlayer对象被刚刚用new操作符创建或是调用了reset()方法后,它就处于Idle状态。当调用了release()方法后,它就处于End状态。这两种 阅读全文
posted @ 2012-07-29 18:39 集少成多 阅读(1317) 评论(0) 推荐(0) 编辑
摘要: 除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下: 一、根据Context获取SharedPreferences对象 二、利用edit()方法获取Editor对象。 三、通过Editor对象存储key-value键值对数 阅读全文
posted @ 2012-07-29 13:28 集少成多 阅读(625) 评论(0) 推荐(0) 编辑
摘要: Android 使用SQLiteOpenHelper对数据库进行版本管理 因为我们开发的软件可能会安装在成百上千个用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手机上创建出应用需要的数据库表呢?总不能在每个需要安装此软件的手机上通过手工方式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为我们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它 阅读全文
posted @ 2012-07-29 10:42 集少成多 阅读(1155) 评论(0) 推荐(0) 编辑
摘要: Service是Android系统提供的四大组件之一,它的地位和Activity的并列的,只不过没有Activity的使用频率高。顾名思义Service就是运行在后台的一种服务程序,一般情况下,很少和用户交互,最大的特点就是没有可视化界面。 定义一个Service类只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidMainifest.xml配置文件中通过<service>或者使用bindService()方法来绑定一个存在的Service,还可以通过RPC(远程进程调用)机制来实现不同进程间Service的调用。Service是 阅读全文
posted @ 2012-07-29 09:06 集少成多 阅读(201) 评论(0) 推荐(0) 编辑