cancelCleanUp
取消清除过期临时文件
cancelCleanUp 方法用于立即中断当前正在进行的磁盘清理任务。它与 cleanUpExpiredTemporaryFiles 配合使用,是保证应用性能和响应速度的重要流控手段。
方法声明
java
/**
* 取消清除过期临时文件任务
* 调用后,SDK 会尽可能快地停止正在扫描或删除文件的后台线程。
*/
void cancelCleanUp();运行行为
- 中断扫描信号:调用后,SDK 会向后台清理线程发送中断指令。
- 停止文件迭代:清理逻辑将不再读取文件列表中的下一个条目。
- 当前操作收尾:如果 SDK 正在执行某个具体大文件的删除动作,通常会等待该原子操作完成后停止。
- 回调终止:一旦任务被取消,
CleanUpExpiredTemporaryFilesListener将不再收到后续的onRemove或onSuccess回调。
应用场景
1. 业务优先级切换
当后台清理任务正在运行,而用户突然点击“进入游戏”时,为了抢夺磁盘 I/O 资源以保障游戏加载速度,应立即调用此方法。
2. 生命周期保护
在包含清理逻辑的组件(如 Activity 或 Service)执行 onStop() 或 onDestroy() 时调用,防止内存泄漏及不必要的后台资源占用。
3. 系统资源预警
如果 App 检测到当前系统 CPU 或 I/O 负载过高,可以通过此方法暂时中止维护性操作。
代码示例
java
// 在 Activity 销毁时确保清理任务停止
@Override
protected void onDestroy() {
super.onDestroy();
if (mRuntime != null) {
// 中断任何正在进行的清理逻辑
mRuntime.cancelCleanUp();
}
}
// 或者在启动游戏前主动避让
public void onUserClickStartGame() {
mRuntime.cancelCleanUp(); // 停止清理,腾出磁盘 I/O
mRuntime.createGameHandle(...);
}注意事项
- 无法撤销:此方法仅能停止“未来的删除”,无法找回已经在清理过程中被物理删除的文件。
- 非阻塞调用:此方法会立即返回,不会阻塞当前线程去等待后台线程彻底结束。
- 可重复性:如果没有正在运行的清理任务,调用此方法不会产生任何副作用或异常。
磁盘维护逻辑已整理完整。接下来是否需要继续为您整理 createGameHandle 的参数 Bundle options 中各个 Key 的具体填充规则?