Flutter docs中的示例将它们正在使用的MethodChannel(与本机主机通信)声明为static const
,直接在使用它的Widget中。为了实现一些分离,我正在尝试布局我的应用程序,以便MethodChannel
如果MethodChannel不是
static
和const
,是否会出现问题(与性能相关,引起错误等)? 最佳答案
按照惯例,定义它的MethodChannel
实例是const
,说实话,没有理由没有它。但是,尽管典型的实现在服务类中定义了通道,但不一定必须如此。您还可以在其他地方轻松定义它,然后通过依赖注入(inject)将其传递给您的服务类。
DI初始化文件
const platform = MethodChannel(...);
void initDI() {
GetIt.I.registerSingleton(platform, "MyMethodChannel");
}
服务文件
class PlatformService {
final MethodChannel platform;
PlatformService()
: platform = GetIt().I.get("MyMethodChannel");
...
}