MediaProvider的学习

本文深入剖析了Honeycomb代码中MediaProvider组件的构成,详细介绍了MediaProvider.java、MediaScannerReceiver.java、MediaScannerService.java等六个关键类的功能与实现细节。着重讲解了ContentProvider的使用、数据库操作以及多媒体扫描服务的实现。

Honeycomb的code里面MediaProvider由6个.java组成。分别是:

MediaProvider.java

MediaScannerReceiver.java

MediaScannerService.java

MediaThumbRequest.java

MtpService.java

UsbReceiver.java

主要解释如下:

1.MediaProvider.java

此类继承于ContentProvider,实现一个内容提供者。像外界提供数据访问。

主要包括:DatabaseHelper GetTableAndWhereOutParameter ThumbData

DatabaseHelper继承自SQLiteOpenHelper类,提供数据库的入口。它有三个抽象方法组成。

onCreate()

onUpgrade()

onOpen()

DatabaseHelper():这是一个构造函数,主要用来叫起super()

onCreate():当数据库第一次被创建的时候被叫起.它会调用SQLiteDatabase.execSQL()方法来创建数据表。具体需要调用updateDatabase(db,mInternal,0,DATABASE_VERSION);

db.execSQL("CREATE TABLE IF NOT EXISTS thumbnails (" + "_id INTEGER PRIMARY KEY," + "_data TEXT," + "image_id INTEGER," + "kind INTEGER," + "width INTEGER," + "height INTEGER" + ");");

onUpgrade():当数据库需要升级的时候,该方法被叫起。通过调用SQLiteDatabase.execSQL()方法来删除数据表。并且创建新的数据表。整个的具体实现是在updateDatabase(db,mInternal,oldV,newV);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值