我怎么知道我的应用程序有多少内存可用?我的应用程序下载一些位图并保存(在内存中)它们,以免再次下载错误用户。但据我所知,Java的堆只有16MB,因此我需要处理一些低内存情况并丢弃一些下载的位图(并非所有位图都同时显示,但它们可能对用户可见单击“点击”,如果已经下载了)。
有没有办法获得实际可用内存(这意味着,Java堆可用内存)?
答案 0 :(得分:2)
不要担心所有这些,而是考虑将代表每个图像的对象包裹在WeakReference中。然后只需使用Map<String, WeakReference<Image>>
进行缓存,或者你正在进行缓存。
这样,如果它已经在缓存中,请使用它。如果它不在缓存中(或者它之前从未被访问过,或者它已被GC访问过),那么再次获取它。
答案 1 :(得分:2)
Android内存博客
http://codelog.dexetra.com/post/47690459692/getting-around-android-memory-blues
检查出来..这可能有助于你..