Тяжелый код платформы порождает задержку пользовательского интерфейса

Я использую MethodChannel.invoke вызвать некоторый код платформы для возврата значков приложений как Uint8Lists. Это происходит для списка всех приложений на устройстве (может быть довольно много), отображаемого как FutureBuilderв ListView.builder,

Это вызвало большое заикание при быстрой прокрутке в ListView, поэтому я изменил его так, чтобы все значки приложений были предварительно загружены перед отображением ListView. Это исправляет прокрутку, но пользовательский интерфейс очень загружен во время загрузки значков.

Я полагаю, что проблема может быть такой же, как и эта, и я не должен загружать значки в потоке пользовательского интерфейса, как сейчас. Тем не менее, глядя на документы дляcomputeЯ не думаю, что смогу использовать его для вызова кода платформы.

Есть ли другой способ избежать лаги интерфейса?

1 ответ

Предложение Пскинка об использовании HandlerThread сделал трюк! Теперь я могу плавно прокручивать даже без предварительной загрузки.

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