Closed7
android で coroutines 内で例外が起きたときにエラーメッセージを表示したい
coroutines の動き解説
永遠に解法がわからなかったけど、
findNavController().navigate()
これ書くの忘れて
HogeDirection.toMoge()
これだけ書いてただけだった…
どうして
永遠に解法がわからなかったけど、
findNavController().navigate()
これ書くの忘れて
HogeDirection.toMoge()
これだけ書いてただけだった…
どうして
HogeDirection.toMoge()
これだけ書いて、
「ダイアログが出ない…UIスレッドで動いてないの…?どうして…?」
ってなってた
結果書いたのはこれだけ
class HogeFragment : Fragment() {
private lateinit var binding: HogeBinding
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = HogeBinding.inflate(inflater)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.button.setOnClickListener {
coroutineFunc()
}
}
private fun coroutineFunc() =
viewLifecycleOwner.lifecycleScope.launch(handler) {
throw Exception("Fatal Exception!!")
}
private val handler = CoroutineExceptionHandler { _, e ->
try {
throw e
} catch (e: Exception) {
findNavController().navigate(HogeDirections.actionToErrorDialog(e.message))
}
}
}
CoroutineExceptionHandler
の中で再スローするのが微妙な気がするので書き換えたい
エラー表示はこれでやっている
このスクラップは2021/05/06にクローズされました