フラグメント(より正確には、 ViewPager )で大きな画像を効率的にリサイクルするにはどうすればよいですか?
onDestroyView()では、bitmap.recycle()を実行してビットマップをリサイクルしますが、最初に、へのパスをonSaveInstanceStateのバンドルに保存します。onSaveInstanceStateが呼び出されない場合のケースに関する何千もの質問とスレッドを読みました。ただし、FragementStatePagerAdapterはdestroyView()を呼び出すため、フラグメントに関連付けられているリソースの割り当てを解除します。
FragmentStatePagerAdapterがsuper.destroyView()を呼び出さないようにすると、FragmentのUIはそのままになり、認識します。
私が達成したいのは、フラグメントが破棄されたときに.recycle()を実行し、onSaveInstanceStateにビットマップへのパスを保存し、onCreateView()が呼び出されたときにパスを再利用して新しいビットマップを作成し、同じビットマップをフラグメントUIのImageView 。
ImageViewに設定する前に、ビットマップを効率的にロード/サンプリングするためにGoogleのガイドを使用しています。
どんなポインタも素晴らしいでしょう!