7

3 つのフラグメントを持つビューページャーを使用してアクティビティに取り組んでいます。

pick image インテントを開始した後、onactivityResult が呼び出されますが
、スターター アクティビティは破棄され、再度作成されます。

(アクティビティを保持しない、開発者設定をオンにしました。)

問題は、アクティビティが作成された後、フラグメントも再度作成されることです (ログを介して観察)

これは、アクティビティが再作成された後にログに表示されます。

 E/Parcel: Class not found when unmarshalling: androidx.fragment.app.FragmentManagerState
    java.lang.ClassNotFoundException: androidx.fragment.app.FragmentManagerState

onActivity の結果は、Activity>getsViewpager>getsAdapter>getsFragmentメソッドを介してプログラムでフラグメントに転送されます。

しかし、今getContext()ではフラグメントで null を返します。(つまり、新しいフラグメントが作成されますonactivityResultが、古いフラグメントに渡されますか?)古いフラグメントを再接続するか、onActivityResult新しいフラグメントに渡す必要があると思います。

新しい/古いアクティビティ/フラグメントを区別するにはどうすればよいですか? アクティビティが再作成された後、フラグメントを簡単に復元するにはどうすればよいですか? アンマーシャリングエラー時にクラスが見つからない原因となる問題は何ですか。

4

0 に答える 0