当前位置: 首页 > news >正文

西安哪家网络公司做网站建网站用的域名多少钱

西安哪家网络公司做网站,建网站用的域名多少钱,南通网站建设.,广告联盟怎么加入文章目录 深入分析 Android ContentProvider (三)ContentProvider 的高级使用和性能优化1. 高级使用场景1.1. 数据分页加载示例#xff1a;分页加载 1.2. 使用 Loader 实现异步加载示例#xff1a;使用 CursorLoader 加载数据 1.3. ContentProvider 与权限管理示例#xff1… 文章目录 深入分析 Android ContentProvider (三)ContentProvider 的高级使用和性能优化1. 高级使用场景1.1. 数据分页加载示例分页加载 1.2. 使用 Loader 实现异步加载示例使用 CursorLoader 加载数据 1.3. ContentProvider 与权限管理示例配置权限 2. 性能优化策略2.1. 缓存机制示例使用 LruCache 进行缓存 2.2. 批量操作示例批量插入数据 2.3. 使用异步操作示例使用 AsyncTask 进行异步查询 2.4. 索引优化示例创建索引 3. 总结 深入分析 Android ContentProvider (三) ContentProvider 的高级使用和性能优化 在实际应用中合理使用 ContentProvider 并进行性能优化是确保应用高效运行的关键。以下内容将介绍一些高级使用场景和性能优化策略。 1. 高级使用场景 1.1. 数据分页加载 对于大量数据的查询可以通过分页加载提高效率。分页加载常用于列表视图中以避免一次性加载所有数据导致的性能问题。 示例分页加载 在 query 方法中实现分页加载 Override public Cursor query(NonNull Uri uri, Nullable String[] projection, Nullable String selection,Nullable String[] selectionArgs, Nullable String sortOrder) {int limit 20; // 每页加载的数据量int offset 0; // 偏移量String limitClause LIMIT limit OFFSET offset;Cursor cursor;switch (uriMatcher.match(uri)) {case EXAMPLES:cursor database.query(DatabaseHelper.TABLE_NAME, projection, selection, selectionArgs, null, null, sortOrder limitClause);break;case EXAMPLE_ID:cursor database.query(DatabaseHelper.TABLE_NAME, projection, DatabaseHelper.COLUMN_ID ?,new String[]{String.valueOf(ContentUris.parseId(uri))}, null, null, sortOrder);break;default:throw new IllegalArgumentException(Unknown URI: uri);}cursor.setNotificationUri(getContext().getContentResolver(), uri);return cursor; }在调用端实现分页查询 Uri uri Uri.parse(content://com.example.provider/example); String sortOrder name ASC LIMIT 20 OFFSET 0; // 加载第一页数据 Cursor cursor getContentResolver().query(uri, null, null, null, sortOrder); if (cursor ! null) {while (cursor.moveToNext()) {String name cursor.getString(cursor.getColumnIndexOrThrow(name));// 处理数据}cursor.close(); }1.2. 使用 Loader 实现异步加载 使用 Loader 可以在异步线程中加载数据避免在主线程中进行耗时操作从而保持 UI 的流畅性。CursorLoader 是一个常用的 Loader用于 ContentProvider 的异步查询。 示例使用 CursorLoader 加载数据 实现一个 LoaderManager.LoaderCallbacksCursor 接口 public class ExampleActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacksCursor {private static final int LOADER_ID 1;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_example);getSupportLoaderManager().initLoader(LOADER_ID, null, this);}NonNullOverridepublic LoaderCursor onCreateLoader(int id, Nullable Bundle args) {Uri uri Uri.parse(content://com.example.provider/example);return new CursorLoader(this, uri, null, null, null, name ASC);}Overridepublic void onLoadFinished(NonNull LoaderCursor loader, Cursor data) {// 处理加载完成的数据}Overridepublic void onLoaderReset(NonNull LoaderCursor loader) {// 清理资源} }1.3. ContentProvider 与权限管理 在一些安全性要求较高的场景下合理配置 ContentProvider 的权限是非常重要的。通过权限声明和 URI 权限授予可以确保数据访问的安全性。 示例配置权限 在 AndroidManifest.xml 中声明权限并为 ContentProvider 设置权限 permission android:namecom.example.provider.READ android:protectionLevelsignature / permission android:namecom.example.provider.WRITE android:protectionLevelsignature / providerandroid:name.ExampleProviderandroid:authoritiescom.example.providerandroid:exportedtrueandroid:readPermissioncom.example.provider.READandroid:writePermissioncom.example.provider.WRITE /在代码中授予 URI 权限 getContentResolver().takePersistableUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);2. 性能优化策略 2.1. 缓存机制 通过缓存机制可以减少对数据库的频繁访问提高数据查询的效率。可以使用内存缓存或磁盘缓存来存储常用数据。 示例使用 LruCache 进行缓存 private LruCacheString, Bitmap mMemoryCache;public void initCache() {final int maxMemory (int) (Runtime.getRuntime().maxMemory() / 1024);final int cacheSize maxMemory / 8;mMemoryCache new LruCache(cacheSize); }public void addBitmapToMemoryCache(String key, Bitmap bitmap) {if (getBitmapFromMemCache(key) null) {mMemoryCache.put(key, bitmap);} }public Bitmap getBitmapFromMemCache(String key) {return mMemoryCache.get(key); }2.2. 批量操作 在对数据进行插入、更新或删除时使用批量操作可以减少数据库的锁定次数提高操作效率。 示例批量插入数据 ArrayListContentProviderOperation operations new ArrayList(); for (int i 0; i 100; i) {ContentValues values new ContentValues();values.put(name, Example i);operations.add(ContentProviderOperation.newInsert(CONTENT_URI).withValues(values).build()); } try {getContentResolver().applyBatch(com.example.provider, operations); } catch (RemoteException | OperationApplicationException e) {e.printStackTrace(); }2.3. 使用异步操作 避免在主线程中进行数据库操作使用 AsyncTask、Loader 或 RxJava 等异步框架进行数据操作确保 UI 的流畅性。 示例使用 AsyncTask 进行异步查询 private class QueryTask extends AsyncTaskVoid, Void, Cursor {Overrideprotected Cursor doInBackground(Void... voids) {Uri uri Uri.parse(content://com.example.provider/example);return getContentResolver().query(uri, null, null, null, name ASC);}Overrideprotected void onPostExecute(Cursor cursor) {// 处理查询结果} }2.4. 索引优化 为频繁查询的字段创建索引可以显著提高查询效率。可以在创建表时添加索引或者在表创建后使用 SQL 语句添加索引。 示例创建索引 private static final String TABLE_CREATE CREATE TABLE TABLE_NAME ( COLUMN_ID INTEGER PRIMARY KEY AUTOINCREMENT, COLUMN_NAME TEXT);;private static final String INDEX_CREATE CREATE INDEX index_name ON TABLE_NAME ( COLUMN_NAME );;Override public void onCreate(SQLiteDatabase db) {db.execSQL(TABLE_CREATE);db.execSQL(INDEX_CREATE); }3. 总结 通过上述高级使用场景和性能优化策略可以更好地利用 ContentProvider 提供的数据共享和跨进程通信功能构建高效、可靠的 Android 应用。在实际开发中根据具体需求合理设计和优化 ContentProvider可以大幅提升应用的性能和用户体验。 欢迎点赞|关注|收藏|评论您的肯定是我创作的动力
http://www.hkea.cn/news/14372063/

相关文章:

  • 房产信息网站营口建网站的公司
  • 虚拟主机建立网站一个公司做两个网站的好处
  • 做名片的网站叫什么来着公司宣传册设计样本
  • 网站建设需要技术wordpress 防止被黑
  • 创建学校网站吗网页开发哪家好
  • 广州企业网站建设费用网站运营小白可以做吗
  • 商城网站静态模板下载教育培训东莞网站建设
  • 手机版微网站外包公司注册需要什么
  • 绍兴网站关键词优化帝国cms导航模板
  • 企业网站建设排名价格网站内容专题怎么做
  • 茌平网站制作东莞热点网站建设
  • 架设仿冒网站挂马关于征求网站建设的意见
  • 百度网盘搜索免费资源搜索引擎优化的核心及内容
  • 网站会说话免费追漫软件app
  • 重庆放心seo整站优化业务管理系统
  • 建设信用卡网银网站杭州国家高新技术企业
  • 网站策划搭建方案湖州长兴县建设局网站
  • 北京高端网站建设公司哪家好网站备案 关闭网站
  • 百度指数不高的网站怎么优化用猴子做标志起网站名叫什么好
  • 网站搭建教程吾爱破解东莞建设一个网站
  • 好的网站你们会感谢我的住建局官网查询系统
  • 用路由器建设网站小程序怎么找出来
  • 企业网站可以个人备案一个网站平台建设得多少钱
  • wordpress 会员管理插件阿里网站seo
  • 二手房网站建设书上海专业制作电子商务网站
  • 网站营销策略烟台做网站的价格
  • 凯杰建设有限公司官方网站舟山网站建设费用
  • 专业网站开发哪里找问卷调查网站赚钱
  • 阿里云网站备案入口安卓手机网站开发
  • 网站推广的方法有sem推广深圳罗湖企业网站建设报价