Skip to main content

排程器層與服務層之間的相依性反轉

服務層現在依賴於排程器層。

摘要

#

服務層現在依賴於排程器層。 過去則是相反。如果你有自訂綁定(custom bindings)覆寫了 Flutter 的 SchedulerBindingServicesBinding,這項變更可能會影響到你。

背景

#

在這項變更之前,排程器層是依賴服務層的。這次變更反轉了相依鏈,讓服務層可以使用排程器層中的排程原語(scheduling primitives)。例如,服務層中的服務現在可以透過 SchedulerBinding.scheduleTask 來排程任務。

變更說明

#

這項變更僅影響那些基於 Flutter 的 SchedulerBindingServicesBinding 定義自訂綁定(custom bindings)的使用者。

遷移指南

#

在這項變更之前,必須先定義 ServiceBinding,再定義 SchedulerBinding。而現在則相反:

遷移前的程式碼:

dart
class FooBinding extends BindingBase with ServicesBinding, SchedulerBinding {
 // ...
}

遷移後的程式碼:

dart
class FooBinding extends BindingBase with SchedulerBinding, ServicesBinding {
 // ...
}

時程

#

Landed in version: 1.18.0
In stable release: 1.20

參考資料

#

API 文件:

相關 PR: