Android上的OutOfMemory异常
我正在我的应用程序中使用一个外部jar库,它正在处理位图。这会导致我的应用程序出现内存不足异常。此类问题在以下问题中进行了描述: 一旦OOME发生,活动崩溃,应用程序仍在运行,内存将可用,但wifi连接将丢失 有没有办法在活动崩溃之前释放内存?我应该说,我可能无法访问库正在使用的位图。我还尝试在onPause和onDestroy中调用System.gc(),但这没有帮助 当活动崩溃时,为什么会没有内存 wi-fi连接发生了什么 多谢各位 updAndroid上的OutOfMemory异常,android,memory,memory-management,memory-leaks,out-of-memory,Android,Memory,Memory Management,Memory Leaks,Out Of Memory,我正在我的应用程序中使用一个外部jar库,它正在处理位图。这会导致我的应用程序出现内存不足异常。此类问题在以下问题中进行了描述: 一旦OOME发生,活动崩溃,应用程序仍在运行,内存将可用,但wifi连接将丢失 有没有办法在活动崩溃之前释放内存?我应该说,我可能无法访问库正在使用的位图。我还尝试在onPause和onDestroy中调用System.gc(),但这没有帮助 当活动崩溃时,为什么会没有内存 wi-fi连接发生了什么 多谢各位 upd 此库是尝试用您自己的类扩展应用程序类(需要声明A
此库是尝试用您自己的类扩展
应用程序
类(需要声明AndroidManifest.xml
)。在那些Application
类中,有一个方法Application.onLowMemory()
——必须在内存不足时调用它。您可以重写此方法并尝试释放不必要的资源。它可能会很有用。如果您记录.jar的使用情况,会有所帮助。可能您没有调用释放/回收位图的API。或者你正在以其本机分辨率解码大型图像,这太多了。这本书是osmdroid,我还没有看到任何释放/回收位图的api。但是我会再看一看,但是我如何才能释放库中不必要的资源(顺便说一句,它是osmdroid)?@Mur您需要调用MapTileCache
实例的clear
方法。我发现将MapTileCache
实例作为一个单例,然后调用onLowMemory
implementationMapTileCache.getInstance().clear()的主体更容易代码>@barmaley这是一个非常正确的建议,thanx。