描述

当应用程序在前台运行时,若 iOS 或 Android 设备通知内存不足,则会发生此事件。您可以从内存中释放非关键资源(例如,纹理或音频剪辑)以应对此情况,从而避免应用程序终止。您还可以加载此类资源的较小版本。此外,您应该将任何瞬态数据序列化为永久存储,以避免在应用程序终止时丢失数据。

此事件对应于不同平台上的以下回调:
- iOS:[UIApplicationDelegate applicationDidReceiveMemoryWarning]
- Android:onLowMemory() 和 onTrimMemory(level == TRIM_MEMORY_RUNNING_CRITICAL)

以下是处理回调的示例:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

class LowMemoryTrigger : MonoBehaviour { List<Texture2D> _textures;

private void Start() { _textures = new List<Texture2D>(); Application.lowMemory += OnLowMemory; }

private void Update() { // allocate textures until we run out of memory _textures.Add(new Texture2D(256, 256)); }

private void OnLowMemory() { // release all cached textures _textures = new List<Texture2D>(); Resources.UnloadUnusedAssets(); } }