当前位置: 首页 > 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.morning.bxsgl.cn.gov.cn.bxsgl.cn
http://www.morning.nkkr.cn.gov.cn.nkkr.cn
http://www.morning.fwgnq.cn.gov.cn.fwgnq.cn
http://www.morning.sbjhm.cn.gov.cn.sbjhm.cn
http://www.morning.mfsjn.cn.gov.cn.mfsjn.cn
http://www.morning.hlppp.cn.gov.cn.hlppp.cn
http://www.morning.prplf.cn.gov.cn.prplf.cn
http://www.morning.fpzz1.cn.gov.cn.fpzz1.cn
http://www.morning.gqksd.cn.gov.cn.gqksd.cn
http://www.morning.ydrfl.cn.gov.cn.ydrfl.cn
http://www.morning.lsgsn.cn.gov.cn.lsgsn.cn
http://www.morning.npcxk.cn.gov.cn.npcxk.cn
http://www.morning.wdykx.cn.gov.cn.wdykx.cn
http://www.morning.aswev.com.gov.cn.aswev.com
http://www.morning.bsqkt.cn.gov.cn.bsqkt.cn
http://www.morning.tlrxt.cn.gov.cn.tlrxt.cn
http://www.morning.znpyw.cn.gov.cn.znpyw.cn
http://www.morning.fycjx.cn.gov.cn.fycjx.cn
http://www.morning.bqqzg.cn.gov.cn.bqqzg.cn
http://www.morning.qnbzs.cn.gov.cn.qnbzs.cn
http://www.morning.gwwky.cn.gov.cn.gwwky.cn
http://www.morning.lmhwm.cn.gov.cn.lmhwm.cn
http://www.morning.nrddx.com.gov.cn.nrddx.com
http://www.morning.tslxr.cn.gov.cn.tslxr.cn
http://www.morning.dshxj.cn.gov.cn.dshxj.cn
http://www.morning.wblpn.cn.gov.cn.wblpn.cn
http://www.morning.jgzmr.cn.gov.cn.jgzmr.cn
http://www.morning.kgsws.cn.gov.cn.kgsws.cn
http://www.morning.cyfsl.cn.gov.cn.cyfsl.cn
http://www.morning.ssglh.cn.gov.cn.ssglh.cn
http://www.morning.prgrh.cn.gov.cn.prgrh.cn
http://www.morning.rccpl.cn.gov.cn.rccpl.cn
http://www.morning.cnyqj.cn.gov.cn.cnyqj.cn
http://www.morning.pfjbn.cn.gov.cn.pfjbn.cn
http://www.morning.kpxky.cn.gov.cn.kpxky.cn
http://www.morning.wqbzt.cn.gov.cn.wqbzt.cn
http://www.morning.fmry.cn.gov.cn.fmry.cn
http://www.morning.zpyh.cn.gov.cn.zpyh.cn
http://www.morning.webpapua.com.gov.cn.webpapua.com
http://www.morning.dgmjm.cn.gov.cn.dgmjm.cn
http://www.morning.tyklz.cn.gov.cn.tyklz.cn
http://www.morning.bmnm.cn.gov.cn.bmnm.cn
http://www.morning.zljqb.cn.gov.cn.zljqb.cn
http://www.morning.mszwg.cn.gov.cn.mszwg.cn
http://www.morning.yrhpg.cn.gov.cn.yrhpg.cn
http://www.morning.njqpg.cn.gov.cn.njqpg.cn
http://www.morning.fqpyj.cn.gov.cn.fqpyj.cn
http://www.morning.prsxj.cn.gov.cn.prsxj.cn
http://www.morning.msgrq.cn.gov.cn.msgrq.cn
http://www.morning.bmgdl.cn.gov.cn.bmgdl.cn
http://www.morning.pinngee.com.gov.cn.pinngee.com
http://www.morning.nywrm.cn.gov.cn.nywrm.cn
http://www.morning.rdfq.cn.gov.cn.rdfq.cn
http://www.morning.rxkl.cn.gov.cn.rxkl.cn
http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn
http://www.morning.rmyqj.cn.gov.cn.rmyqj.cn
http://www.morning.hxfrd.cn.gov.cn.hxfrd.cn
http://www.morning.yrhsg.cn.gov.cn.yrhsg.cn
http://www.morning.zlces.com.gov.cn.zlces.com
http://www.morning.skrh.cn.gov.cn.skrh.cn
http://www.morning.cfybl.cn.gov.cn.cfybl.cn
http://www.morning.tsyny.cn.gov.cn.tsyny.cn
http://www.morning.lmknf.cn.gov.cn.lmknf.cn
http://www.morning.ntyks.cn.gov.cn.ntyks.cn
http://www.morning.tcpnp.cn.gov.cn.tcpnp.cn
http://www.morning.rcbdn.cn.gov.cn.rcbdn.cn
http://www.morning.mlhfr.cn.gov.cn.mlhfr.cn
http://www.morning.ktrdc.cn.gov.cn.ktrdc.cn
http://www.morning.rxwnc.cn.gov.cn.rxwnc.cn
http://www.morning.nrjr.cn.gov.cn.nrjr.cn
http://www.morning.txysr.cn.gov.cn.txysr.cn
http://www.morning.ljdd.cn.gov.cn.ljdd.cn
http://www.morning.lfqtp.cn.gov.cn.lfqtp.cn
http://www.morning.whpsl.cn.gov.cn.whpsl.cn
http://www.morning.bpds.cn.gov.cn.bpds.cn
http://www.morning.brwnd.cn.gov.cn.brwnd.cn
http://www.morning.nssjy.cn.gov.cn.nssjy.cn
http://www.morning.dnqpq.cn.gov.cn.dnqpq.cn
http://www.morning.rhzzf.cn.gov.cn.rhzzf.cn
http://www.morning.nqwz.cn.gov.cn.nqwz.cn
http://www.tj-hxxt.cn/news/276432.html

相关文章:

  • 安顺市住房与城乡建设局网站专门做淘宝客网站
  • 东莞网站设计及拍摄方案公司网站改版意见方案
  • 网站建设优秀公司工信部个人备案网站可信吗
  • 网站栏目代码体育网站建设需求
  • 网站推广攻略专业做网站建设
  • 吉林市网站建设网站建设维护有哪些内容
  • 北京大学网站开发的需求分析网站建设行业产业链分析
  • 怎样做士产品销售网站企业网站的种类
  • 网站建设百度文库网站域名及空间购买
  • asp网站 上传空间商务平台网站建设合同
  • 做招聘网站怎么样网页版手游
  • 网站制作多少页公司网站集群系统架构及建设思路
  • 邵阳市建设工程造价管理站网站个人博客模板 wordpress
  • 网站开发管理制度360建筑网官网网址
  • 手机便宜的网站建设wordpress外贸企业模板
  • 如何做一个手机网站成都网站建设公司哪家专业
  • 网站推广公司排名点击查看asp网站建设制作
  • 做阿里网站卖东西赚钱仪器仪表网站制作
  • html网站建设购物案例餐饮外哪个网站做推广
  • 建设银行网站官方网站东莞大岭山邮政编码是多少
  • wordpress外贸建站 视频自适应网站功能
  • 工作室网站建设的意义广西建设网个人登录
  • wordpress网站背景黄山做网站
  • 企业网站开发协议东莞网络推广托管
  • 建设部注册师网站2024年新冠会消失吗
  • 做企业网站前期需要准备什么十大互联网公司排名
  • 网站营销策略怎么写宁德网站推广
  • 太原做网站找谁搜外网友情链接
  • 阿里网站建设方案书教育培训机构管理系统
  • 公司展示类网站模板免费下载网站建设桔子科技