destroy method Null safety

Future<void> destroy()

销毁 RtcEngine 实例。

该方法释放 Agora SDK 使用的所有资源。有些 app 只在用户需要时才进行语音通话, 不需要时则将资源释放出来用于其他操作,该方法对这类程序可能比较有用。只要调用了 RtcEngine.destroy 方法, 用户将无法再使用和回调该 SDK 内的其它方法。如需再次使用通信功能,必须重新创建一个 RtcEngine 实例。

Note

  • 该方法需要在子线程中操作。
  • 该方法为同步调用。在等待 RtcEngine 实例资源释放后再返回。 APP 不应该在 SDK 产生的回调中调用该接口,否则由于 SDK 要等待回调返回才能回收相关的对象资源,会造成死锁。
  • 如果需要在销毁后再次创建 RtcEngine 实例,需要等待 RtcEngine.destroy 方法执行结束, 收到返回值后才能再创建实例。

Implementation

@override
Future<void> destroy() {
  RtcChannel.destroyAll();
  _instance?._handler = null;
  _instance = null;
  return _invokeMethod('destroy');
}