2011-07-10 10 views
6

私はアプリケーションをより具体的にはアンドロイド携帯用のゲームにします。シングルトン対インテント(アンドロイド)

私はゲームデータの保存について考えているので、私は複数のアクティビティと多くのクラスを持っています。

ゲームのデータがアクティビティで表示されるようにする必要があります。シングルトンを使用してデータを格納し、アクティビティから簡単に受け取る必要がある場合や、インテントを使用してデータを渡す必要がある場合は、

少量で大量のデータ(スコアなどの小さなもの、地図などの大きなもの)があります。

私はインテントを使用しますが、同じようにすべてを行う方が良いとは思いませんか?そして、もしそうなら、全ゲーム状態のシングルトンが良いと思う。何か案は?

+1

ためApplicationを見ることができます

((MyApplication)this.getApplicationContext()).myMethod() 

のようなものをあなたがあなたの活動の全てがへのアクセスを許可する任意のカスタムメソッドを追加し、それぞれの活動の使用から複数のアクティビティに表示される場合は、シングルトンを使用します。特定のデータの次のアクティビティに通知する必要がある場合は、インテントのエクストラを使用してください。個人的には、両方を使う方が良いと思います。彼らは相互に排他的ではありません。 –

+1

それはゲームのもう一つの良いフィット感はServiceLocatorだろう:http://gameprogrammingpatterns.com/service-locator.html – mibollma

答えて

1

私はちょうどカスタムアプリケーションのクラスを作成し、私の「シングルトン」としていることを使用し、すべての活動は、その後にカスタムアプリケーションコンテキスト

にアクセスすることができますので、それが正常に動作している複数の活動により使用されたデータを必要とします

public class MyApplication extends Application { 
    // Details left blank 
} 

を作成し、拡張Applicationクラスによってそのスタートを行うことはなく、デフォルトのアプリケーション

<application 
     ... 
     android:name=".MyApplication" 
のものを使用することを知っているので、あなたのマニフェストにこれを追加

そして、あなたは、同じデータが必要な場合は、より詳細

+0

カスタムアプリケーションはどういう意味ですか?ちょうど普通のシングルトンパターンクラスですか?私はまた、良い習慣とメモリ/ CPU使用率の面でより良いものを求めています。 – Taks

+0

@Taksあなたはカスタムアプリケーションクラスを作成することができます私は上記の答えを修正するでしょう – Idistic

+0

ここで同じを行う。よく働く。 –

関連する問題