preDownloadGame
预下载游戏(通过游戏 ID)
preDownloadGame 用于在不启动游戏的情况下,提前从服务器下载游戏所需的资源包(如场景、模型、脚本等)。该接口支持进度回调,非常适合在游戏大厅或详情页执行后台下载,以提升后续用户进入游戏时的加载速度。
方法声明
java
/**
* 预下载游戏,根据游戏 ID
*
* @param gameID gameID
* @param listener 下载状态与进度监听器
* @return SUDOPGameTask 任务句柄,可用于取消或管理下载任务
*/
public static SUDOPGameTask preDownloadGame(
String gameID,
SUDOPPreDownloadGameListener listener
);参数说明
用于指定预下载的目标信息:
| 属性 | 类型 | 描述 |
|---|---|---|
| gameId | String | 必填。需要预下载资源的游戏唯一标识。 |
SUDOPPreDownloadGameListener
用于接收下载过程中的状态反馈:
void onSuccess(String gameId):资源包下载、校验及解压完成,资源已就绪。void onFailure(int retCode, String retMsg):下载失败。可能原因包括磁盘空间不足、网络连接中断或资源 ID 无效。
运行行为
- 版本检测:SDK 自动检测本地缓存的版本与服务端最新版本的差异。
- 并发下载:采用分片多线程下载技术,最大化利用带宽,缩短下载耗时。
- 静默处理:此过程仅涉及文件 IO 和网络传输,不占用 GPU 资源,不会干扰 App 当前的 UI 渲染。
- 完整性校验:下载完成后自动执行签名验证与文件 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 环境下自动触发此接口。