androidクラス間でデータをやり取りする方法
androidでは、クラス間でのデータの受け渡しを実現するための複数の方法があります。ここでは、一般的に使用されている方法をいくつか紹介します。
- Intentを使用してデータを引き渡すには、送信側のActivityでIntentオブジェクトを作成し、putExtra()メソッドを使用してIntentにデータを格納してから、startActivity()メソッドを使用して受信側のActivityを起動します。受信側のActivityでは、getIntent()メソッドを使用して渡されたIntentを取得し、getXXXExtra()メソッドを使用してデータを格納します。
- Bundleはデータ受け渡しのコンテナクラスで、送り側のActivityでBundleオブジェクトを生成してputXXX()メソッドでデータを登録し、IntentのputExtras()メソッドにBundleオブジェクトを引数として渡します。受け取り側のActivityではgetExtras()メソッドで渡されたBundleを取得し、getXXX()メソッドでデータを取得します。
- 静的変数の利用:あるクラスに静的変数を定義し、他のクラスからそれを直接利用して値を渡すこともできます。この手法は簡単ですが、静的変数の生存期間に注意して、メモリリークを起こさないようにする必要があります。
- コールバックインターフェースを用いる:インターフェースを定義し、送信側クラスでそのインターフェースを実装し、受信側クラスでそのインターフェースへの参照を持つ。送信側クラスはデータを転送したいときにインターフェース内のメソッドを呼び出してデータを転送し、受信側クラスはデータをインターフェース内のメソッドを介して処理する。
- ブロードキャスト処理:データの送信には、ブロードキャストの送信処理を利用できます。送信側クラスはブロードキャスト送信を用いてデータを発行し、受信側クラスはブロードキャスト受信機を登録してブロードキャスト受信時にそのデータを処理します。
以上の方法はよく利用されていますが、どの方法を使うかは、業務上のニーズや個人の選択によります。