Monitoring Database Upgrade Status
Starting from version 5.10.4, the SDK introduced the RCDatabaseStatusDelegate delegate protocol for monitoring database upgrade status changes.
When calling the IMLib SDK connection interface, database upgrade operations may be triggered. If the data volume is large, this process can be time-consuming. By monitoring the database upgrade status, apps can perform different business processing or display progress notifications on the interface.
Database upgrades are automatically triggered by the IMLib SDK and will not cause user data loss. The upgrade duration depends on device performance, database version, and size, and cannot be precisely estimated.
Adding or Removing Delegate
You can set up database status listeners after initializing the AppKey for IMLib SDK but before connecting to IM. Multiple listeners are supported.
To prevent memory leaks, remove the delegate when monitoring is no longer needed.
// Add delegate
[[RCCoreClient sharedCoreClient] addDatabaseStatusDelegate:self];
// Remove delegate
[[RCCoreClient sharedCoreClient] removeDatabaseStatusDelegate:self];
Implementing Database Upgrade Status Delegate Methods
The RCDatabaseStatusDelegate protocol is as follows:
@protocol RCDatabaseStatusDelegate <NSObject>
/*!
Database upgrade begins
- Since: 5.10.4
*/
- (void)databaseUpgradeWillStart;
/*!
Database upgrade completes
- Since: 5.10.4
*/
- (void)databaseUpgradeDidComplete:(RCErrorCode)code;
/*!
Database upgrade in progress
- Parameter progress: Upgrade progress [0-100]
- Since: 5.10.4
*/
- (void)databaseIsUpgrading:(int)progress;
@end