У меня есть файл актива, который необходимо обработать, прежде чем его можно будет использовать. Этот файл ресурсов будет сильно отредактирован, и я не хотел бы перезапускать приложение каждый раз, когда я делаю правку.
Мне известно о существовании метода reassemble
в классе State
. Однако для этого требуется наличие фиктивного виджета, который переопределяет этот метод, и размещение его внутри приложения где-нибудь, чтобы получать уведомления о горячей перезагрузке.
class WdHotReloadNotifier extends StatefulWidget
{
final Function callback;
WdHotReloadNotifier(this.callback);
@override
State<StatefulWidget> createState() => WdHotReloadNotifierState(this.callback);
}
class WdHotReloadNotifierState extends State<WdHotReloadNotifier>
{
Function callback;
WdHotReloadNotifierState(this.callback);
@override
void reassemble()
{
super.reassemble();
callback();
}
@override
Widget build(BuildContext context) {
return Container();
}
}
Тогда я могу использовать это так:
WdHotReloadNotifier((){print("HOT REALOADED 1");}),
WdHotReloadNotifier((){print("HOT REALOADED 2");}),
Однако добавление их на одну страницу означает, что она будет работать, пока страница находится в стеке. А добавление их на несколько страниц означает, что хуки будут выполняться более одного раза.
Есть ли способ во флаттере получать глобальные уведомления о горячей перезагрузке?