0

我的应用程序有一个后台服务,它会定期从网上下载信息。根据 MA​​T(内存分析器),整体内存使用量(保留)为 KB,无论如何,如果我打开 android 的任务管理器,我会看到 13-15 MB。我不知道怎么回事:主应用程序关闭,没有活动在运行,只有服务!

也许是因为在主要活动中我使用 LruCache 缓存位图?但是,理论上,退出这个活动后,应该释放内存......

编辑:这是我的 LruCache 代码,没什么大不了的,只是一个单例,以便每个活动共享缓存内容:

public class PortableCache {
private static final int CACHE_MB = 1;

private static LruCache<String, Bitmap> cachedBitmaps= new LruCache<String,Bitmap>(CACHE_MB*1024*1024){
    protected int sizeOf(String k,Bitmap v){
        return v.getRowBytes()*v.getHeight();
    }
};

public static LruCache<String, Bitmap> getImageCache(){
    return cachedBitmaps;
}

   }

但是,缓存大小为 1MB,我不认为它是主要责任......

编辑2:奇怪的是,随着时间的推移,服务内存使用量减少了……从现在的 16MB 到 1 小时后,变成了 9MB。

4

0 回答 0