WEB开发网
开发学院手机开发Android 开发 详解 Android content provider 阅读

详解 Android content provider

 2010-03-15 15:35:00 来源:WEB开发网   
核心提示:getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values); // Now get a handle to the file for that record, and save the data into it. // Here, sourceBitm
getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, values); // Now get a handle to the file for that record, and save the data into it. // Here, sourceBitmap is a Bitmap object representing the file to save to the database. try { OutputStream outStream = getContentResolver().openOutputStream(uri); sourceBitmap.compress(Bitmap.CompressFormat.JPEG, 50, outStream); outStream.close(); } catch (Exception e) { Log.e(TAG, "exception while writing image", e); } 批量更新数据想要批量更新一组记录,例如把所有字段的"NY"改成 "New York",就要调用ContentResolver.update()函数,用想要改变的列和值作为参数。删除记录调用ContentResolver.delete()函数,以特定行的Uri为参数,可以删除一条记录。

调用ContentResolver.delete()函数,以需要删除的记录类型的Uri(如 android.provider.Contacts.People.CONTENT_URI)为参数,可以删除多行数据,SQL的WHERE语句可以指定删除哪儿些行。注意:如果要删除一个通用类型,一定要确定WHERE语句是有效的,否则将会面临删掉比预计更多的记录的风险。创建Content Provider 要创建一个Content Provider,必须: · 建立保存数据的系统。大多数content providers使用Android的文件或SQLite数据库来存储数据,但是我们可以以我们想要的任何方式存储数据。 Android提供了 SQLiteOpenHelper来帮助我们创建数据库,提供了 SQLiteDatabase类来管理数据库。 · 扩展ContentProvider类来提供访问数据的方法。. · 在应用程序的AndroidManifest.xml文件中声明这个Content Provider。下面各节将讨论上面任务的后两项定义ContentProvider类的子类把数据开放给使用ContentResolver和Cursor期望规则的其它应用程序,这主要是要实现在 ContentProvider类中定义的六个虚函数: query() insert() update() delete() getType() onCreate() query()方法必须返回一个能够遍历所求数据的Cursor对象。Cursor本身也是接口,但是Android一些可用的Cursor对象,例如,SQLiteCursor可以遍历保存在SQLite数据库中的数据。通过调用任何SQLiteDatabase类的query()方法就可以得到 Cursor对象,还有其它为不是保存在数据库中的数据而设的Cursor实现,诸如MatrixCursor。由于在不同的进程和线程中的ContentResolver 对象都可以调用ContentProvider的方法,必须在线程安全模式下使用。

上一页  1 2 3 4 5 6  下一页

Tags:详解 Android content

编辑录入:coldstar [复制链接] [打 印]
赞助商链接