跳到主要内容

监听数据库升级状态

从 5.10.4 版本开始,SDK 增加了数据库升级状态变化的委托协议 RCDatabaseStatusDelegate

在调用 IMLib SDK 连接接口时,可能触发数据库升级操作,如果数据量比较大,会比较耗时。通过监听数据库升级状态, App 可以进行不同业务处理,或在页面上给出提示。

提示

数据库升级由 IMLib SDK 自动触发,不会造成用户数据丢失,升级时间与手机性能、数据库版本及大小有关,具体时间无法预估。

添加或移除代理委托

您可以在 IMLib SDK 初始化 AppKey 之后,连接 IM 之前设置数据库状态监听器,支持设置多个监听器。

为了避免内存泄露,请在不需要监听时,将设置的代理移除。

Objective C
// 添加代理委托
[[RCCoreClient sharedCoreClient] addDatabaseStatusDelegate:self];

// 移除代理委托
[[RCCoreClient sharedCoreClient] removeDatabaseStatusDelegate:self];

实现数据库升级状态委托协议的相关方法

RCDatabaseStatusDelegate 协议如下:

Objective C
@protocol RCDatabaseStatusDelegate <NSObject>

/*!
数据库开始升级

- Since: 5.10.4
*/
- (void)databaseUpgradeWillStart;

/*!
数据库升级完成

- Since: 5.10.4
*/
- (void)databaseUpgradeDidComplete:(RCErrorCode)code;

/*!
数据库升级中

- Parameter progress: 升级进度【0-100】
- Since: 5.10.4
*/
- (void)databaseIsUpgrading:(int)progress;
@end