Skip to content

cancelCleanUp

取消清除过期临时文件

cancelCleanUp 方法用于立即中断当前正在进行的磁盘清理任务。它与 cleanUpExpiredTemporaryFiles 配合使用,是保证应用性能和响应速度的重要流控手段。


方法声明

java
/**
 * 取消清除过期临时文件任务
 * 调用后,SDK 会尽可能快地停止正在扫描或删除文件的后台线程。
 */
void cancelCleanUp();

运行行为

  1. 中断扫描信号:调用后,SDK 会向后台清理线程发送中断指令。
  2. 停止文件迭代:清理逻辑将不再读取文件列表中的下一个条目。
  3. 当前操作收尾:如果 SDK 正在执行某个具体大文件的删除动作,通常会等待该原子操作完成后停止。
  4. 回调终止:一旦任务被取消,CleanUpExpiredTemporaryFilesListener 将不再收到后续的 onRemoveonSuccess 回调。

应用场景

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 的具体填充规则?