Skip to content

preDownloadGame

预下载游戏(通过游戏 ID)

preDownloadGame 用于在不启动游戏的情况下,提前从服务器下载游戏所需的资源包(如场景、模型、脚本等)。该接口支持进度回调,非常适合在游戏大厅或详情页执行后台下载,以提升后续用户进入游戏时的加载速度。


方法声明

java
/**
 * 预下载游戏,根据游戏 ID
 *
 * @param gameID   gameID
 * @param listener 下载状态与进度监听器
 * @return SUDOPGameTask 任务句柄,可用于取消或管理下载任务
 */
public static SUDOPGameTask preDownloadGame(
    String gameID, 
    SUDOPPreDownloadGameListener listener
);

参数说明

用于指定预下载的目标信息:

属性类型描述
gameIdString必填。需要预下载资源的游戏唯一标识。

SUDOPPreDownloadGameListener

用于接收下载过程中的状态反馈:

  • void onSuccess(String gameId):资源包下载、校验及解压完成,资源已就绪。
  • void onFailure(int retCode, String retMsg):下载失败。可能原因包括磁盘空间不足、网络连接中断或资源 ID 无效。

运行行为

  1. 版本检测:SDK 自动检测本地缓存的版本与服务端最新版本的差异。
  2. 并发下载:采用分片多线程下载技术,最大化利用带宽,缩短下载耗时。
  3. 静默处理:此过程仅涉及文件 IO 和网络传输,不占用 GPU 资源,不会干扰 App 当前的 UI 渲染。
  4. 完整性校验:下载完成后自动执行签名验证与文件 MD5 校验,确保资源包未被劫持或损坏。

代码示例

java
// 发起预下载任务
SUDOPGameTask downloadTask = SUDOP.preDownloadGame("game_101", new SUDOPPreDownloadGameListener() {
    @Override
    public void onSuccess(String gameId) {
        // 资源已就绪
        Log.i("SUDOP", "Game " + gameId + " pre-downloaded successfully.");
    }

    @Override
    public void onFailure(int retCode, String retMsg) {
        // 处理下载错误
        Log.e("SUDOP", "Download failed: " + retMsg);
    }
});

注意事项

  • 存储空间:建议在调用前检查设备可用存储空间。
  • 网络环境:在移动网络下建议通过 UI 提示用户,或限制在 Wi-Fi 环境下自动触发此接口。