我的应用有一个后台服务,定期从网上下载信息。 根据MAT(内存分析器)整体内存使用(保留)是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,我认为它不是主要负责人......
EDIT2: 奇怪的是随着时间的推移,服务内存使用量减少了......从现在的16MB开始,1小时后就是9 MB。