【Flutter】ライフサイクルをRxDartで管理する

Flutter

バックグラウンドからの復帰処理を追加したかったので、LifecycleWidgetとライフサイクルを一元管理できるLifecycleServiceを作成しました。

Flutterのライフスタイルを取得するためにはStatefulWidgetを使う必要がありますが、各ページはStatelessWidgetで実装されているため毎度StatefulWidgetを使いたくありません。

なのでLifecycleWidgetでアプリ全体をラップして使用します。

ステートの取得はRxDartを使用して、どこからでもstreamで取得できるようにしています。

LifecycleService

sink/streamを持つだけのサービスを用意します。

LifecycleWidget

LifecycleWidgetはStatefulWidgetでできています。

やっていることは単純で、sinkで各ステートをサービスに流しているだけです。

アプリ全体をLifecycleWidgetでラップする

main.dartでアプリ全体をLifecycleWidgetでラップしてあげます。

各ページでの使用方法

あとは使用したいところでstreamをlistenしてあげるだけです。どこからでも呼べるので便利ですね。

 

コメント

タイトルとURLをコピーしました