支付宝小程序API 内存不足告警
my.onMemoryWarning
版本要求:基础库 1.11.0 或更高版本;支付宝客户端 10.1.35 或更高版本,若版本较低,建议做 兼容处理。
开始监听内存不足的告警事件。Android 下有告警等级划分:TRIM_MEMORY_RUNNING_LOW 和 TRIM_MEMORY_RUNNING_CRITICAL;iOS 没有等级划分。
扫码体验
示例代码
// 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">
开始监听内存不足告警
</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 | 系统内存的告警等级, 仅 Android 有此字段。 |
Android 下告警等级对应系统宏:
int TRIM_MEMORY_RUNNING_LOW = 10
int TRIM_MEMORY_RUNNING_CRITICAL = 15
my.offMemoryWarning
版本要求:基础库 1.11.0 或更高版本;支付宝客户端 10.1.35 或更高版本,若版本较低,建议做 兼容处理。
停止监听内存不足的告警事件,需要保证和 onMemoryWarning/offMemoryWarning 中的入参(callback)是同一个对象。
扫码体验
入参
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">
开始监听内存不足告警
</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 值,则会移除监听所有的事件回调。示例代码如下:
my.offMemoryWarning();
- 传递 callback 值,只移除对应的 callback 事件。示例代码如下:
my.offMemoryWarning(this.callback);