最近在学习android 的webkit,看到一些自己认为是好的代码或者方式就把它记录下来,方便以后复习与借鉴。
WebViewDatabase是一个单实例对象,通过getInstance方法获取WebViewDatabase的实例。WebViewDatabase是WebKit模块中的内部对象,仅供WebKit框架内部使用。
private static WebViewDatabase mInstance = null;private WebViewDatabase() {// Singleton only, use getInstance()}public static synchronized WebViewDatabase getInstance(Context context) {if (mInstance == null) {mInstance = new WebViewDatabase();mDatabase = context.openOrCreateDatabase(DATABASE_FILE, 0, null);// mDatabase should not be null,// the only case is RequestAPI test has problem to create dbif (mDatabase != null && mDatabase.getVersion() != DATABASE_VERSION) {mDatabase.beginTransaction();try {upgradeDatabase();mDatabase.setTransactionSuccessful();} finally {mDatabase.endTransaction();}}if (mDatabase != null) {// use per table Mutex lock, turn off database lock, this// improves performance as database's ReentrantLock is expansivemDatabase.setLockingEnabled(false);}mCacheDatabase = context.openOrCreateDatabase(CACHE_DATABASE_FILE,0, null);// mCacheDatabase should not be null,// the only case is RequestAPI test has problem to create dbif (mCacheDatabase != null&& mCacheDatabase.getVersion() != CACHE_DATABASE_VERSION) {mCacheDatabase.beginTransaction();try {upgradeCacheDatabase();bootstrapCacheDatabase();mCacheDatabase.setTransactionSuccessful();} finally {mCacheDatabase.endTransaction();}// Erase the files from the file system in the// case that the database was updated and the// there were existing cache contentCacheManager.removeAllCacheFiles();}if (mCacheDatabase != null) {// use InsertHelper for faster insertionmCacheInserter = new DatabaseUtils.InsertHelper(mCacheDatabase,"cache");mCacheUrlColIndex = mCacheInserter.getColumnIndex(CACHE_URL_COL);mCacheFilePathColIndex = mCacheInserter.getColumnIndex(CACHE_FILE_PATH_COL);mCacheLastModifyColIndex = mCacheInserter.getColumnIndex(CACHE_LAST_MODIFY_COL);mCacheETagColIndex = mCacheInserter.getColumnIndex(CACHE_ETAG_COL);mCacheExpiresColIndex = mCacheInserter.getColumnIndex(CACHE_EXPIRES_COL);mCacheMimeTypeColIndex = mCacheInserter.getColumnIndex(CACHE_MIMETYPE_COL);mCacheEncodingColIndex = mCacheInserter.getColumnIndex(CACHE_ENCODING_COL);mCacheHttpStatusColIndex = mCacheInserter.getColumnIndex(CACHE_HTTP_STATUS_COL);mCacheLocationColIndex = mCacheInserter.getColumnIndex(CACHE_LOCATION_COL);mCacheContentLengthColIndex = mCacheInserter.getColumnIndex(CACHE_CONTENTLENGTH_COL);}}return mInstance;}

WebViewDatabase db = WebViewDatabase.getInstance(this);

更多相关文章

  1. Android之使用私有存储
  2. Android_SQLite数据库详解
  3. Activity的启动模式和onNewIntent
  4. AIDL使用和Binder机制详解
  5. android 上传文件到服务器代码实例
  6. Android的存储系统—Vold与MountService分析(三)
  7. Android之ViewModel
  8. Android中Widget实例
  9. Android(安卓)中application 详解

随机推荐

  1. 反抗金山毒霸的代码
  2. Android - ContactPicker(选择联系人) 详
  3. [置顶] Android源代码下载
  4. pro.Android Media--调用内置的照相机
  5. Android(安卓)– 匯入專案以及注意事項
  6. Android的消息循环机制 Looper Handler类
  7. Android中的BatteryService及相关组件
  8. android 按键注入,模拟back,home,menu按键
  9. androidのActionbar
  10. Android GPS两点间距离