Skip to main content

Monitor Database Upgrade Status

Starting from version 5.10.4, the SDK introduces a database upgrade status listener interface. When an SDK upgrade involves database module changes, an overwrite installation will trigger a database upgrade. During this process, connection stability may be affected. Therefore, we've added this listener interface to allow you to display upgrade notifications or progress pages when receiving upgrade events, helping alleviate user anxiety during the wait.

tip

The database upgrade is automatically triggered by the SDK and will not cause data loss. The upgrade duration depends on device performance, database version, and size, and cannot be precisely estimated.

The following interfaces have been added to RongIMClient for adding and removing database upgrade status listeners:

  • addDatabaseStatusListener
  • removeDatabaseStatusListener

Sample Code

// Set database upgrade status listener
public void addDatabaseStatusListener(IRongCoreListener.DatabaseUpgradeStatusListener listener);

// Remove database upgrade status listener
public void removeDatabaseStatusListener(IRongCoreListener.DatabaseUpgradeStatusListener listener);

You can create custom database upgrade status listeners by implementing the 3 functions of the DatabaseUpgradeStatusListener interface:

  • databaseUpgradeWillStart: Database upgrade begins.
  • databaseIsUpgrading: Database upgrade in progress.
  • databaseUpgradeDidComplete: Database upgrade completed.

Sample Code

public interface DatabaseUpgradeStatusListener {
/**
* Database upgrade begins
*/
public abstract void databaseUpgradeWillStart();

/**
* Database upgrade progress callback
*
* @param progress Value range 0~100
*/
public abstract void databaseIsUpgrading(int progress);

/**
* Database upgrade completion callback
*
* @param code Returns {IRongCoreEnum.CoreErrorCode.SUCCESS} for success, or
* {IRongCoreEnum.CoreErrorCode.RC_DB_UPGRADE_FAILED} for failure
*/
public abstract void databaseUpgradeDidComplete(IRongCoreEnum.CoreErrorCode code);
}