前提・実現したいこと
androidアプリの開発をしています。
navigationで遷移後、popBackStackで以前のfragmentに戻るとlivedataが2重登録されてしまい処理が2重に動作してします。
また、さらにnavigationで遷移して、戻るとさらに倍になります。
発生している問題・エラーメッセージ
navigationで遷移後、popBackStackで以前のfragmentに戻る毎にlivedataのobserverが増えていく
該当のソースコード
findNavController().navigate()で遷移
findNavController().popBackStack()で戻る
livedata
1override fun onViewCreated(view: View, savedInstanceState: Bundle?) { 2 super.onViewCreated(view, savedInstanceState) 3 4 Qlog.d("Fragment-onViewCreated") 5 6 viewModel.itemClick.observe(viewLifecycleOwner, { 7 it?.let { 8 Qlog.d("$it") 9 } 10 }) 11}
試したこと
2重登録されない、onCreateで行いましたが、「Can't access the Fragment View's LifecycleOwner when getView() is null i.e., before onCreateView() or after onDestroyView()」となり動作しませんでした。
補足情報(FW/ツールのバージョンなど)
android api level: 30
android studio: 4.1.3
kotlin: 1.4.32
あなたの回答
tips
プレビュー