支付寶小程序API 內存不足告警

2020-09-16 15:49 更新

my.onMemoryWarning

版本要求:基礎庫 1.11.0 或更高版本;支付寶客戶端 10.1.35 或更高版本,若版本較低,建議做 兼容處理。

開始監(jiān)聽內存不足的告警事件。Android 下有告警等級劃分:TRIM_MEMORY_RUNNING_LOW 和 TRIM_MEMORY_RUNNING_CRITICAL;iOS 沒有等級劃分。

掃碼體驗

內存不足警示.png

示例代碼

// API-DEMO page/API/memory-warning/memory-warning.json
{
   "defaultTitle": "OnMemoryWarning"
}
<!-- API-DEMO page/API/memory-warning/memory-warning.axml-->
<view class="page">


  <button type="primary" onTap="onMemoryWarning">
    開始監(jiān)聽內存不足告警
  </button>


</view>
// API-DEMO page/API/memory-warning/memory-warning.js
Page({
  onLoad() {
    this.callback = (res) => {
        var levelString = 'iOS 設備, 無 level 傳入.';
        switch (res.level) {
          case 10:
            levelString = 'Android 設備, level = TRIM_MEMORY_RUNNING_LOW';
            break;
          case 15:
            levelString = 'Android 設備, level = TRIM_MEMORY_RUNNING_CRITICAL';
            break;
        }
        my.alert({
          title: '收到內存不足告警',
          content: levelString
        });
    };
    this.isApiAvailable = my.canIUse('onMemoryWarning');
  },
  onMemoryWarning() {
    if (this.isApiAvailable) {
      my.onMemoryWarning(this.callback);
    } else {
      my.alert({
        title: '客戶端版本過低',
        content: 'my.onMemoryWarning() 和 my.offMemoryWarning() 需要 10.1.35 及以上版本'
      });
    }
  },
  onUnload() {
    if (this.isApiAvailable) {
      my.offMemoryWarning(this.callback); 
    }
  }
});

入參

入參為 Function(callback) 類型,callback 回調函數的參數類型為 Object 類型,屬性如下:

屬性 類型 說明
level Number 系統(tǒng)內存的告警等級, 僅 Android 有此字段。

Android 下告警等級對應系統(tǒng)宏:

int TRIM_MEMORY_RUNNING_LOW = 10
int TRIM_MEMORY_RUNNING_CRITICAL = 15

my.offMemoryWarning

版本要求:基礎庫 1.11.0 或更高版本;支付寶客戶端 10.1.35 或更高版本,若版本較低,建議做 兼容處理

停止監(jiān)聽內存不足的告警事件,需要保證和 onMemoryWarning/offMemoryWarning 中的入參(callback)是同一個對象。

掃碼體驗

內存不足警示.png

入參

Function 類型,callback 回調函數。

示例代碼

// API-DEMO page/API/memory-warning/memory-warning.json
{
   "defaultTitle": "OnMemoryWarning"
}

<!-- API-DEMO page/API/memory-warning/memory-warning.axml-->
<view class="page">


  <button type="primary" onTap="onMemoryWarning">
    開始監(jiān)聽內存不足告警
  </button>


</view>
// API-DEMO page/API/memory-warning/memory-warning.js
Page({
  onLoad() {
    this.callback = (res) => {
        var levelString = 'iOS 設備, 無 level 傳入.';
        switch (res.level) {
          case 10:
            levelString = 'Android 設備, level = TRIM_MEMORY_RUNNING_LOW';
            break;
          case 15:
            levelString = 'Android 設備, level = TRIM_MEMORY_RUNNING_CRITICAL';
            break;
        }
        my.alert({
          title: '收到內存不足告警',
          content: levelString
        });
    };
    this.isApiAvailable = my.canIUse('onMemoryWarning');
  },
  onMemoryWarning() {
    if (this.isApiAvailable) {
      my.onMemoryWarning(this.callback);
    } else {
      my.alert({
        title: '客戶端版本過低',
        content: 'my.onMemoryWarning() 和 my.offMemoryWarning() 需要 10.1.35 及以上版本'
      });
    }
  },
  onUnload() {
    if (this.isApiAvailable) {
      my.offMemoryWarning(this.callback); 
    }
  }
});
是否需要傳 callback 值

  • 不傳遞 callback 值,則會移除監(jiān)聽所有的事件回調。示例代碼如下:

my.offMemoryWarning();
  • 傳遞 callback 值,只移除對應的 callback 事件。示例代碼如下:

my.offMemoryWarning(this.callback);
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號