Androidでは、システムのメモリが不足している場合やメモリ不足が発生した場合に呼び出されるコールバックはありますか?
例:3つのアプリケーションA、B、Cが実行されています。Cではメモリ不足がスローされます。アプリケーションAは、AndroidシステムがアプリケーションAを強制終了しないように、リソースをクリアできるようにそれをどのように知ることができますか.
Androidでは、システムのメモリが不足している場合やメモリ不足が発生した場合に呼び出されるコールバックはありますか?
例:3つのアプリケーションA、B、Cが実行されています。Cではメモリ不足がスローされます。アプリケーションAは、AndroidシステムがアプリケーションAを強制終了しないように、リソースをクリアできるようにそれをどのように知ることができますか.
onLow メモリ メソッドをオーバーライドし、必要なことを行います。
@Override
public void onLowMemory() {
// clear the unwanted resources from memory
super.onLowMemory();
}
注: このメソッドが正しく呼び出されるという保証はありません。
これは、システム全体のメモリが不足しているときに呼び出され、積極的にプロセスを実行してベルトを締めようとする場合に呼び出されます。これが呼び出される正確なポイントは定義されていませんが、一般的には、すべてのバックグラウンド プロセスが強制終了されたとき、つまり、強制終了を回避したいサービスとフォアグラウンド UI をホストしているプロセスを強制終了するポイントに到達する前に発生します。
開発者ドキュメント リンクから
onLowMemory() 以外にもメソッドがあります。
WeakReferenceを使用してキャッシュを保持すると、Android は OOM を適切に処理します。また、アクティビティよりも優先度が高く、アクティビティの後に破棄されるServiceを使用することもできます。