在android中,当系统内存不足或内存不足时,是否会调用任何回调。
例如:有三个应用程序A,B,C在运行。在C中抛出内存不足。应用程序A如何知道它可以清除它的资源,以便android系统不会杀死应用程序A。
在android中,当系统内存不足或内存不足时,是否会调用任何回调。
例如:有三个应用程序A,B,C在运行。在C中抛出内存不足。应用程序A如何知道它可以清除它的资源,以便android系统不会杀死应用程序A。
您必须扩展 Application 类,并覆盖 onLowMemory() 方法。
public class App extends Application {
@Override
public void onLowMemory() {
super.onLowMemory();
// handle lowmemory stuff
}
}
除了 onLowMemory() 还有其他方法。
使用WeakReference保留您的缓存,Android 将优雅地处理 OOM。此外,您可以使用Service,它的优先级高于活动,将在活动之后被销毁。
覆盖 onLow 内存方法并做你需要的东西。
@Override
public void onLowMemory() {
// clear the unwanted resources from memory
super.onLowMemory();
}
注意:不能保证正确调用此方法。
这在整个系统内存不足时调用,并且希望主动运行的进程试图勒紧裤腰带。虽然没有定义调用它的确切时间,但通常它会在所有后台进程都被杀死的时候发生,即在到达我们希望避免杀死的托管服务和前台 UI 的进程终止点之前。
来自开发者文档 链接