2

在android中,当系统内存不足或内存不足时,是否会调用任何回调。

例如:有三个应用程序A,B,C在运行。在C中抛出内存不足。应用程序A如何知道它可以清除它的资源,以便android系统不会杀死应用程序A。

4

3 回答 3

2

您必须扩展 Application 类,并覆盖 onLowMemory() 方法。

public class App extends Application {


    @Override
    public void onLowMemory() {

        super.onLowMemory();
        // handle lowmemory stuff
    }
}
于 2013-08-08T07:11:22.730 回答
0

除了 onLowMemory() 还有其他方法。

使用Wea​​kReference保留您的缓存,Android 将优雅地处理 OOM。此外,您可以使用Service,它的优先级高于活动,将在活动之后被销毁。

于 2013-08-08T08:00:33.857 回答
0

覆盖 onLow 内存方法并做你需要的东西。

    @Override
public void onLowMemory() {

// clear the unwanted resources from memory

    super.onLowMemory();
}

注意:不能保证正确调用此方法。

这在整个系统内存不足时调用,并且希望主动运行的进程试图勒紧裤腰带。虽然没有定义调用它的确切时间,但通常它会在所有后台进程都被杀死的时候发生,即在到达我们希望避免杀死的托管服务和前台 UI 的进程终止点之前。

来自开发者文档 链接

于 2013-08-08T08:57:51.713 回答