Android应用程序组件Content Provider在应用程序之间共享数据的原理分析(5)
16lz
2021-12-04
Step 22.SQLiteCursorDriver.query 这个函数定义在frameworks/base/core/java/android/database/sqlite/SQLiteDirectCursorDriver.java文件中:
- publicclassSQLiteDirectCursorDriverimplementsSQLiteCursorDriver{
- ......
- publicCursorquery(CursorFactoryfactory,String[]selectionArgs){
- //Compilethequery
- SQLiteQueryquery=newSQLiteQuery(mDatabase,mSql,0,selectionArgs);
- try{
- ......
- //Createthecursor
- if(factory==null){
- mCursor=newSQLiteCursor(mDatabase,this,mEditTable,query);
- }else{
- mCursor=factory.newCursor(mDatabase,this,mEditTable,query);
- }
- ......
- returnmCursor;
- }finally{
- ......
- }
- }
- ......
- }
- publicfinalclassCursorToBulkCursorAdaptorextendsBulkCursorNative
- implementsIBinder.DeathRecipient{
- ......
- publicCursorToBulkCursorAdaptor(Cursorcursor,IContentObserverobserver,StringproviderName,
- booleanallowWrite,CursorWindowwindow){
- try{
- mCursor=(CrossProcessCursor)cursor;
- if(mCursorinstanceofAbstractWindowedCursor){
- AbstractWindowedCursorwindowedCursor=(AbstractWindowedCursor)cursor;
- ......
- windowedCursor.setWindow(window);
- }else{
- ......
- }
- }catch(ClassCastExceptione){
- ......
- }
- ......
- }
- ......
- }
- publicabstractclassAbstractWindowedCursorextendsAbstractCursor
- {
- ......
- publicvoidsetWindow(CursorWindowwindow){
- ......
- mWindow=window;
- }
- ......
- protectedCursorWindowmWindow;
- }
- if(bulkCursor!=null){
- reply.writeStrongBinder(bulkCursor.asBinder());
- if(wantsCursorMetadata){
- reply.writeInt(bulkCursor.count());
- reply.writeInt(BulkCursorToCursorAdaptor.findRowIdColumnIndex(
- bulkCursor.getColumnNames()));
- }
- }else{
- ......
- }
- publicfinalclassCursorToBulkCursorAdaptorextendsBulkCursorNative
- implementsIBinder.DeathRecipient{
- ......
- publicintcount(){
- returnmCursor.getCount();
- }
- ......
- }
更多相关文章
- mybatisplus的坑 insert标签insert into select无参数问题的解决
- 箭头函数的基础使用
- python起点网月票榜字体反爬案例
- 类和 Json对象
- Python技巧匿名函数、回调函数和高阶函数
- Android(安卓)Day02
- Android(安卓)WebView的使用方法总结
- Android碎碎念 -- 数据存储
- Android(安卓)Adapter详解