在应用程序与活动中覆盖onTrimMemory的优点和缺点是什么? Android文档对于Application和Activity的onTrimMemory看起来完全相同,并且似乎都在后台调用。
如果我在Activity中实现onTrimMemory,并且应用程序已在后台运行,并且调用了onDestroy活动,之后可以再调用onTrimMemory吗?
对于上述情况,如果我不能在活动上调用onTrimMemory时,是否要为应用修剪缓存,是否应该将onTrimMemory放入应用程序中?
最佳答案
您应该根据谁保留要修剪的内存来覆盖onTrimMemory(int)
或Application
(或任何其他组件)中的Activity
。负责内存的类应该进行修整。
回调的机制如下:系统调用Application.onTrimMemory(int)
,然后在应用程序的组件上调用相同的回调。回调在应调用的任何地方都被调用(我怀疑它会在Activity.onDestroy()
之后-您不再关心这种活动了)。您决定覆盖的决定不会受到“活动”生命周期的影响。
如果内存属于应用程序,请在那里处理它。如果它仅属于活动,则在那里进行处理。
关于android - 在应用程序与 Activity 中覆盖onTrimMemory,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42983928/