前提・実現したいこと
Android開発初心者です。
Fragment上でActivityのContextを取得するとき、context(= getContext())を使えばよいのか、requireContext()を使えばよいのか、どちらが良いのでしょうか。(kotlinを使用します。)
試したこと
それぞれJavaの中身を見てみました。
java
1@Nullable 2public Context getContext() { 3 return mHost == null ? null : mHost.getContext(); 4}
nullが返されることもあるっぽい
java
1@NonNull 2public final Context requireContext() { 3 Context context = getContext(); 4 if (context == null) { 5 throw new IllegalStateException("Fragment " + this + " not attached to a context."); 6 } 7 return context; 8}
nullのときは、Exceptionが投げられる。
それらを踏まえ、context(=getContext())を使うときは、
kotlin
1context?.let{ 2 // Contextを使うなんらかの処理 3}
requireContext()を使うときは、
kotlin
1try{ 2 someFun(requireContext()) // Exception が来たら、catch 3}catch(e: Exception){ 4 // e.message 出力など 5}
というように使い分けるといことでしょうか。しかし、requireContext()が使われるとき、try catchで囲まれているものを見たことがありません。
どのように使い分けるのでしょうか。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。