9

非 UI フラグメントの主な目的は、構成の変更後も保持されるデータの保存だと思いますよね? したがって、このフラグメントを所有するアクティビティに固有のこのストレージであることは別として、これはアプリケーション全体でシングルトン パターンを使用する利点です (これは私がこれまで行ってきたソリューションです)。

4

1 に答える 1

16

フラグメントのスコープがそのアクティビティに限定されているという事実は、シングルトンとは対照的に、長期的なメモリ リークの可能性が少ないことを意味します。フラグメントは最終的にガベージ コレクションされるはずですが、シングルトンはそうではありません。

また、タイミングをいくらか制御できます。はアプリでApplication作成された直後に作成されContentProviders、それを選択することはできません。逆に、フラグメントがいつ作成されるかを制御できるため、その制御を利用できる場合があります。

そのため、データが実際にアクティビティによってのみ必要とされる場所では、非 UI フラグメントはおそらくシングルトンよりも優れたアイデアです。シングルトンは、複数のコンポーネントにわたってデータが必要な場所向けです。

于 2012-07-20T11:15:14.757 に答える