doActivity
ここ数日、製作したモデルに対する並列実行エンジンの効果的なデモを作成するために、doActivityの実装を行っているのだが、これがなかなかに難しい。
まず、doActivityを実現するために考えなければならないこととしては次のことがある。
- transition後に、targetにあたるstateのdoActivityにあたるActivityを非同期で実行する。
- doActivityにあたるActivityが終了したら、completion eventを発生させて、それを他のイベントよりも先に処理させる(EventQueueの先頭に置く)。
- doActivityにあたるActivityの終了よりも先に、現在のstateからのtransitionが起きた場合、そのActivityを終了させる。
- 上のことをさらにComposite stateの場合にあてはめて考える。