2017-07-26 2 views
5

私はButterknifeを使用するアプリを持っていますが、最近ではunbinder.unbind()という部分のonDestroyView()を呼び出すことができなかった部分が見つかりました。私は問題を解決しましたが、それは私に考え始めました。unbind()の使用に失敗した場合はどうなりますか?

これはどのような種類のエラーが原因ですか、なぜですか?今は特別なエラーはありませんが、今後何が気になるのかを知りたいと思っています。ライブラリのウェブサイトでは、このような問題が特定されていません。

答えて

2

retained fragmentがあり、@BindViewを使用してビューを初期化したとします。

このフラグメントは保持されたフラグメントであるため、初期化したフィールドはまだ存在しません(null)ので、このインスタンスは破棄されますが、このフラグメントは破棄されます。以前のアクティビティのビューへの強い参照。アクティビティのリークが発生します。

これは若干の時間がかかりますが(最終的にはButterKnife.bind()onViewCreated()に実行しようとしていますが、そうだと思いますが、だれかが知っているかもしれませんが、多分そうではありません)。あなたはそれらを必要とせず、GCに仕事をさせます。

私はこの質問についてもう少し前に考えていましたが、これ以外にもunbind()が強く必要な別のシナリオには出くわしませんでした。

関連する問題