zoukankan      html  css  js  c++  java
  • Android 缓存策略demo

    packageinstallerpermissionmodelPermissionApps.java

        /**
         * Class used to reduce the number of calls to the package manager.
         * This caches app information so it should only be used across parallel PermissionApps
         * instances, and should not be retained across UI refresh.
         */
        public static class PmCache {
            private final SparseArray<List<PackageInfo>> mPackageInfoCache = new SparseArray<>();
            private final PackageManager mPm;
    
            public PmCache(PackageManager pm) {
                mPm = pm;
            }
    
            public synchronized List<PackageInfo> getPackages(int userId) {
                List<PackageInfo> ret = mPackageInfoCache.get(userId);
                if (ret == null) {
                    ret = mPm.getInstalledPackagesAsUser(PackageManager.GET_PERMISSIONS, userId);
                    mPackageInfoCache.put(userId, ret);
                }
                return ret;
            }
        }
    private final PmCache mCache;
    
    List<PackageInfo> apps = mCache != null ? mCache.getPackages(user.getIdentifier())
                        : mPm.getInstalledPackagesAsUser(PackageManager.GET_PERMISSIONS,
                                user.getIdentifier());
    /**
    * Class used to reduce the number of calls to the package manager.
    * This caches app information so it should only be used across parallel PermissionApps
    * instances, and should not be retained across UI refresh.
    */
    public static class PmCache {
    private final SparseArray<List<PackageInfo>> mPackageInfoCache = new SparseArray<>();
    private final PackageManager mPm;

    public PmCache(PackageManager pm) {
    mPm = pm;
    }

    public synchronized List<PackageInfo> getPackages(int userId) {
    List<PackageInfo> ret = mPackageInfoCache.get(userId);
    if (ret == null) {
    ret = mPm.getInstalledPackagesAsUser(PackageManager.GET_PERMISSIONS, userId);
    mPackageInfoCache.put(userId, ret);
    }
    return ret;
    }
    }
  • 相关阅读:
    静态变量一定要先声明后赋值
    建议3 三元操作的类型必一致
    IDEA 创建 Maven web项目注意事项
    js不同类型作比较
    exception中return方法
    exception 打印出异常栈踪迹
    spring controller使用了@ResponseBody却返回xml
    springboot中的406(Not Acceptable)错误
    把本地建好的项目提交到git上
    java基础---------方法和方法重载
  • 原文地址:https://www.cnblogs.com/onelikeone/p/9312208.html
Copyright © 2011-2022 走看看