Сброс содержимого 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 когда фрагмент снова добавлен.

0 ответов

Другие вопросы по тегам