重複の可能性:
Androidのアクティビティ間でデータを渡す
OK私のActivity1.javaにという変数があるとしましょうdate
静的として宣言すると、Activity2で、と書くだけでその値を思い出すことができますActivity1.date
。
静的でない場合は、activity2を開始するときに、を介して日付の値を渡すことができますBundle
。
両方の方法が機能しています。
私の質問は、どちらが最も好まれ、不利な点が少ないかということです。
重複の可能性:
Androidのアクティビティ間でデータを渡す
OK私のActivity1.javaにという変数があるとしましょうdate
静的として宣言すると、Activity2で、と書くだけでその値を思い出すことができますActivity1.date
。
静的でない場合は、activity2を開始するときに、を介して日付の値を渡すことができますBundle
。
両方の方法が機能しています。
私の質問は、どちらが最も好まれ、不利な点が少ないかということです。
確かにバンドルで渡されるのははるかに少ない結合です。
静的なActivity2では、Activity1なしでは存在できません。アクティビティは再利用性が高いことを目的としていますが、静的を介して、アクティビティを高度に結合しています。
静的は多くの理由で悪いです、主にそれがうーん...静的だからです。これは、常にメモリを使用し、アクティビティのすべてのインスタンスで共有するフィールドのインスタンスが1つしかないことを意味します。
このため、非常に多くの場所で非常に多くの微妙な方法であなたを噛むことができます。たとえば、同じアクティビティに対して複数の単体テストを作成する場合、値は共有されるため、テストは独立しません。または別のユースケース:スタック上にアクティビティのインスタンスがいくつかあります-それらはすべて値を共有しますが、多くの場合、それはあなたが望むものではありません。
結論:静的なことはしないでください。Staticを使用すると、1〜2行のコードを節約できますが、多くの問題が発生する可能性があります。ちなみに、それはアンドロイドに固有のものではありません、それはどのプラットフォームにも当てはまります