zoukankan      html  css  js  c++  java
  • 【Android开发】监听图库数据库的变化

    步骤一:

    保存图片或者删除之前,初始化ContentObserver

    ScreenshotContentObserver  mScreenObserver = new ScreenshotContentObserver(context, mHandler);
      Uri imageUri = MediaStore.Images.Media.INTERNAL_CONTENT_URI;
      Uri imageUri2 = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
      context.getContentResolver().registerContentObserver(imageUri, false, mScreenObserver);
      context.getContentResolver().registerContentObserver(imageUri2, false, mScreenObserver);
    

    跟进ScreenshotContentObserver类:

    public class ScreenshotContentObserver extends ContentObserver {
    
        public static final String TAG = "ScreenshotContentObserver";
        private Context mContext;
        private Handler mHandler;
        private boolean showToast = true;
    
        public ScreenshotContentObserver(Context context, Handler handler) {
            super(handler);
            mContext = context;
            mHandler = handler;
        }
    
        /**
         * 主要在onChange中响应数据库变化,并进行相应处理
         */
        @Override
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);
            if(showToast){
                Toast.makeText(mContext, "保存成功!", Toast.LENGTH_SHORT).show();
                showToast = false;
            }
        }
    }
    

    设定boolean值showToast的意图,是因为每添加一张图片,都会执行一次onChange 方法,此处是个人为避免这种情况单独处理的。

    Handler传过来,可以向主线程回传消息。

    步骤二:

    操作图库,添加删除图片即可。

  • 相关阅读:
    web前端安全---读书笔记
    三色旗
    Pascal三角形
    汉诺塔算法
    冒泡排序算法
    HttpRunner 参数化数据驱动
    swagger接口变动监控
    HttpRunnerManager平台异步生成及展示代码覆盖率报告(ant+jacoco+jenkins+HttpRunnerManager)
    SonarQube+jenkins+maven平台搭建
    requests 模块
  • 原文地址:https://www.cnblogs.com/neo-java/p/10184902.html
Copyright © 2011-2022 走看看