Version: 2017.1

描述

This event occurs when an iOS, Android, or Tizen device notifies of low memory while the app is running in the foreground. You can release non-critical assets from memory (such as, textures or audio clips) in response to this in order to avoid the app being terminated. You can also load smaller versions of such assets. Furthermore, you should serialize any transient data to permanent storage to avoid data loss if the app is terminated.

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

以下是处理回调的示例:

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(); } }