アクティビティにisDestroyed()がありますが、Fragmentに対応するアクティビティが見つかりません。フラグメントにisDestroyed()はありますか?
自分でフラグを設定するためにonDestroyed()をオーバーライドできますが、既存の解決策があると仮定します。
フラグメント内のUIを更新する前に、フラグメントが破損しているかどうかをネットワークの応答で確認しようとしています。
ご協力いただきますようお願い申し上げます。ありがとう!
アクティビティにisDestroyed()がありますが、Fragmentに対応するアクティビティが見つかりません。フラグメントにisDestroyed()はありますか?
自分でフラグを設定するためにonDestroyed()をオーバーライドできますが、既存の解決策があると仮定します。
フラグメント内のUIを更新する前に、フラグメントが破損しているかどうかをネットワークの応答で確認しようとしています。
ご協力いただきますようお願い申し上げます。ありがとう!
他のフラグメントの親としてフラグメントを作成し、次のコードを使用して破棄された機能をチェックすることができます。
public abstract class ASafeFragment extends Fragment
{
protected boolean isSafe()
{
return !(this.isRemoving() || this.getActivity() == null || this.isDetached() || !this.isAdded() || this.getView() == null);
}
...
}
またはdeveloperサイトから
public static boolean isSafeFragment(Fragment frag)
{
return !(frag.isRemoving() || frag.getActivity() == null || frag.isDetached() || !frag.isAdded() || frag.getView() == null);
}
私は、フラグメントが破損していないかどうかを確認するために、 レスポンスで、UIコンポーネントを更新するかどうかを判断しています。 UIが破壊されますので、
onDestroyView()
が呼び出された後、UIの更新ができないため
あなたはonDestroyView()
を使用することができます。 UIを更新する前に、getActivity()
がnull
かどうかを確認できます。
: "アクティビティが破棄されると、すべてのフラグメントが破棄されます。"すべてのフレグメントはアクティビティに含まれているため、アクティビティをチェックする必要があります。
何isDestroyedは(ありません)断片
洞察に感謝します。私は今代替案があることを知っています。 – wooohoh
のために進行中である可能性があり、作業に対処する方法を決定するための最も防弾パターンがLoaderにその仕事を置くことです。フラグメント/アクティビティのLoaderManagerは、その結果を処理する適切な時期になったときにのみLoaderCallbacksを呼び出すことに精通します。あるいは、構成変更後の置換フラグメント/アクティビティの結果を保持することさえ可能です。これは余分なコーディングですが、中断や取り消しから復旧する最善の方法です。
ローダーをご紹介いただきありがとうございます。私はDocとチュートリアルを読んで、コンセプトは良く見えますが、私の単純な作業ではやや面倒です。 – wooohoh
アクティビティが破棄された場合、すべてのフラグメントが破棄されるため、アクティビティが破棄された場合、getActivity().isDestroyed()
がtrueを返すという簡単な応答が発生する可能性があります。フラグメントのネストは、一般的には良い考えではありません。
また、断片onDestroyView()
方法のチェックを無効にして、あなたはそれが破壊されていますかどうかを確認するためには、このチェックを達成するために何をしようとしている真の
にブール変数を設定することができますか? –
こんにちは@DougStevenson、私はフラグメントが破棄されているかどうか、ネットワークの応答で、UIコンポーネントを更新するかどうかを判断しようとしています。 – wooohoh