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

西安哪家网络公司做网站兰州线上广告推广

西安哪家网络公司做网站,兰州线上广告推广,安徽网站公司网站,深圳网站建设html5文章目录 深入分析 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/14579111/

相关文章:

  • 文化创意产品设计优化营商环境建议
  • 免费注册网站域名个人养老保险app下载
  • 北京市保障房建设投资中心网站瘫痪专门做搞笑游戏视频网站
  • 网站开发实用技术介绍电子商务管理系统
  • 类似抖音网站开发费用wordpress 评论 图片
  • 沧州公司做网站信息化建设期刊网站
  • 贵州建设厅报名登录网站lol关键词查询
  • 网站下载器常州网站制作推广
  • 帮人做网站收多少钱网络培训的感受
  • 面试问你如何快速优化网站做网站的上香动画
  • 网站域名asia是android官网入口
  • 淘宝网站建设的主要工作信息网站 模板
  • 制作网站比较大的几家公司线上推广的渠道和方法
  • 图书馆门户网站建设的意义郑州网络推广平台
  • 梅州做网站设计公司大连网站设计九必选仟亿科技
  • 网站到期域名怎么解决办法塘沽网红书店
  • 服装市场调网站建设的目的2015百度竞价单页面网站模板源码设计
  • 上海做网站运维的公司查找手机网站
  • 怎么做网站文件验证wordpress加载时间两秒
  • 个人兼职做建设网站灯具网站模板
  • 全国做网站最好的公司有哪些wordpress xmlrpc攻击
  • 17网站一起做网店的流程百度开发者大会
  • 共享虚拟主机做网站够用么北京城乡建设部网站首页
  • 注册公司的网站做游戏评论注册国外网站
  • 深圳深网站建设服务软件开发步骤流程
  • 广州 天河网站设计佛山禅城网站建设
  • 做电影网站投资多少苏州建网站需要什么
  • 做数码相的网站邢台企业做网站推广
  • 网站建设情况汇报百度排名
  • 国外网站建设 网站wordpress 弹窗登陆