Сброс содержимого FlutterFragment с помощью Flutter Engine при использовании FlutterFragment
Я использую модуль Flutter в своем приложении для Android. Я определил глобальный движок Flutter Engine в предварительно нагретом состоянии в своей деятельности и прикрепляю его к FlutterFragment по мере необходимости в конкретном сценарии. Ниже показан предварительно подогретый движок, который вызывается после запуска onCreate() в Activity.
void setupFlutterEngine(){
FlutterEngine flutterEngine=new FlutterEngine(getApplicationContext());
// Start executing Dart code in the FlutterEngine.
flutterEngine.getDartExecutor().executeDartEntrypoint(
DartExecutor.DartEntrypoint.createDefault()
);
// Cache the pre-warmed FlutterEngine to be used later by FlutterFragment.
FlutterEngineCache
.getInstance()
.put(FLUTTER_ENGINE_CACHE_TAG, flutterEngine);
}
Все работает нормально, я создаю экземпляр и добавляю кэшированный движок в свой FlutterFragment, как показано ниже:
FlutterEngine flutterEngine=FlutterEngineCache.getInstance().get(FLUTTER_ENGINE_CACHE_TAG);
flutterMethodChannel = new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), methodChannelTag);
flutterMethodChannel.setMethodCallHandler(new MethodChannel.MethodCallHandler() {
@Override
public void onMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result result) {
}
});
GeneratedPluginRegistrant.registerWith(flutterEngine);
flutterFragment = FlutterFragment
.withCachedEngine(FLUTTER_ENGINE_CACHE_TAG)
.renderMode(RenderMode.surface)
.transparencyMode(TransparencyMode.opaque)
.shouldAttachEngineToActivity(true)
.build();
Я хочу завершить текущий вид модуля флаттера, когда фрагмент уничтожен, но не хочу разрушать движок, я хотел бы повторно использовать FlutterEngine и хочу перезапустить с самого первого экрана в методе main() в модуле Flutter когда фрагмент снова добавлен.