3
0

More than 1 year has passed since last update.

【Flutter】MainActivityをComponentActivityのサブクラスにしたい【Android】

Posted at

はじめに

Flutter開発してると、MethodChannelを使ってプラットフォーム固有の機能を使いたいことがままある。
AndroidだとMethodChannel経由でActivityにアクセスするんだけども、アクセス先のActivityがデフォルトだとFlutterActivityになっていて、ComponentActivityを継承していない。

これだと、activity-ktxのviewModelsが使えなくて、DIするときにとても困ってしまう。
ViewModelFactoryを作ったりして頑張ればなんとかなったのだろうけど、僕にそんな技術力はないので別の方法を探したら、いい感じに解決できた。

あんまり記事とかもなかったので共有。

結論

FlutterFragmentActivityを使う。

ドキュメントを見てくれればわかるけど、この子はしっかりandroidx.core.app.ComponentActivityを継承してくれているので、FlutterActivityをFlutterFragmentActivityに差し替えてくれれば、ちゃんとviewModelsも使えるようになる。
MethodChannelで繋ぐActivityを全てFlutterFragmentActivityにするのではなくて、必要に応じて使うのがいいっぽいね。

まとめ

  • MethodChannelで繋いだActivityでComponentActivityでしか使えない機能がある場合は、FlutterFragmentActivityを使おう。

おわり。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0