• Android四大组件之contentProvider(续)


        1、content provider与网页有何相似之处?

      contentProvider使用authority 同网站的域名类似
      contentProvider还可以提供类似于网站的索引方式
           content://media/external/images/#
         2、你能列出几个内置的content provider吗?
      imagestore,constans,media, message,
         3、通过adb工具你可以做些什么?
       可以获取文件和操作手机
         4、什么是AVD?
       android vertual device
         5、你如何列出可用的AVDs?
      android list avds
         6、Android中的一些有用的命令行工具名称是什么?
        adb,ddms
         7、content provider对应的数据库在什么位置?
      在创建项目的data/data下面
         8、浏览一个数据库的好的方法是什么?
      Cursor方式
         9、Content provider的authority属性是什么?
      就是用来索引的,类似于wen的域名
         10、content provider的authority可以缩写吗?
      不可以
         11、MIME类型是什么?其如何与content provider相联系?
      是用来验证的类型。1)就是定义后可以使系统认为你的返回时安全的
      2)就是可以设置必要的data在androidmanifest.xml的时候,这样发的intent就可以用到这个类型了。
            this.startActivity(new Intent(action, uri));
      Uri可以是数据库的某条记录,然后,这个时候需要先匹配contentprovider的gettype类型。
         12、程序员如何找到与某content provider通信的URIs?
      
         13、如何通过URIs来访问数据?
      mcontentresolver
         14、如何为content provider的query语句传入where语句?
      mContentResolver.query(SearchMetaData.CONTENT_URI,
                    projection, selection, selectionArg, null)
         15、如何遍历一个cursor?
              Cursor cursor = mContentResolver.query(SearchMetaData.CONTENT_URI,
                    projection, selection, selectionArg, null);
            if (cursor != null) {
                while (cursor.moveToNext()) {
                    // int persionId=
                    // cursor.getInt(cursor.getColumnIndex(SearchMetaData.PERSIOD_ID));
                    String path = cursor.getString(cursor
                            .getColumnIndex(SearchMetaData.BITMAP_PATH));
                    if (!mPathHash.contains(path)) {
                        mPathHash.add(path);// we not add same path twice
                    }
                }
                cursor.close();
            }
         16、Content Values扮演一个什么角色?
      传入数据库的数据,一条记录就是一个values
         17、ContentResolver类扮演什么角色?
      上层操作数据库的媒介
         18、在Content Provider中存储一个文件的协议是什么?
      通过BLOB的方式可以直接存储大文件,图片,MP3等。
      getInputStream()和getOutpurStream()来读写二进制信息。
         19、UriMatcher如何工作,如何使用UriMatcher?
      
        static {
            URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
            URI_MATCHER.addURI(AUTHORITY, SearchMetaData.TABLE_NAME,
                    SEARCH_COLLECTION_URI_INDICATER);
            URI_MATCHER.addURI(AUTHORITY, SearchMetaData.TABLE_NAME + "/#",
                    SEARCH_SINGAL_URI_INDICATER);
            URI_MATCHER.addURI(AUTHORITY, ApplicationsMetaData.TABLE_NAME,
                    APPLICATIONS_COLLECTION_URI_INDICATER);
            URI_MATCHER.addURI(AUTHORITY, ApplicationsMetaData.TABLE_NAME + "/#",
                    APPLICATIONS_SINGAL_URI_INDICATER);
        }
    int op = URI_MATCHER.match(uri);
            String idapp = "";
            switch (op) {
            case SEARCH_COLLECTION_URI_INDICATER:
                count = db.delete(SearchMetaData.TABLE_NAME, selection,
                        selectionArgs);
                break;
            case SEARCH_SINGAL_URI_INDICATER:
                String id = uri.getPathSegments().get(1);
                count = db.delete(SearchMetaData.TABLE_NAME, SearchMetaData._ID
                        + "="
                        + id
                        + (!TextUtils.isEmpty(selection) ? "AND(" + selection + ')'
                                : ""), selectionArgs);
                break;
            case APPLICATIONS_SINGAL_URI_INDICATER:
                idapp = uri.getPathSegments().get(1);
            case APPLICATIONS_COLLECTION_URI_INDICATER:
                ApplicationsMetaData
                        .delete(db, op, idapp, selection, selectionArgs);
                break;
            default:
                throw new IllegalArgumentException("Unknown Uri " + uri);
            }
  • 相关阅读:
    Linux基本命令-chmod
    Linux操作系统启动流程
    博客园背景美化
    Windows安装python3.x后,pip list警告!DEPRECATION: The default format will switch to columns in the future.
    Python2.7更新pip:UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position 7: ordinal not in range(128)
    .Net程序员学用Oracle系列(23):视图理论、物化视图
    .Net程序员学用Oracle系列(22):分析函数(OVER)
    .Net程序员学用Oracle系列(21):分组查询(GROUP BY)
    .Net程序员学用Oracle系列(20):层次查询(CONNECT BY)
    .Net程序员学用Oracle系列(19):导出、导入(备份、还原)
  • 原文地址:https://www.cnblogs.com/deman/p/4211538.html
Copyright © 2020-2023  润新知