2012-06-15 3 views
0

Donc j'essaie de faire une application en utilisant la méthode Singleton. Je veux avoir une classe qui stocke toutes les informations sur l'état bluetooth de mon appareil/connexions/périphériques, et je veux faire plusieurs activités qui peuvent accéder à ces méthodes.Android Singleton Method

Je sais que j'ai besoin d'une classe qui étend Application, alors je peux accéder à tout en appelant getApplication(). Ce que je ne comprends pas, c'est où j'initialise cet objet. De mon cadre de référence, j'ai toutes ces activités distinctes, et si j'initialise l'objet en un, je vais devoir utiliser des intentions pour passer l'objet à l'activité suivante, ce qui va complètement à l'encontre de l'objectif d'utiliser le singleton méthode.

Toute aide serait appréciée, merci.

+0

Je ne sais pas ce que vous entendez par là haha ​​ – JuiCe

Répondre

1

Si vous avez étendu Application, votre classe sera créée au lancement de votre application. Il peut être récupéré dans les classes d'activité en utilisant getApplication()

+0

Thank you! Donc, il est automatiquement initialisé? Donc, si je crée un constructeur pour la classe, il est exécuté avant le début de la classe, et fondamentalement chaque fois que je veux y accéder dans n'importe quelle activité, j'appelle simplement "getApplication(). AnyMethod()?" – JuiCe

+1

Il a une méthode onCreate qui sera appelée automatiquement où vous pouvez faire votre initialisation. Oui, vous pouvez y accéder avec getApplication() – barry

+0

merci beaucoup boss – JuiCe

2

Simplement étendre de android.app.Application. Alors inscrivez-vous comme la classe d'application dans votre AndroidManifest.xml:

<application android:name="mypackage.MyApplication" ...> 

Dans votre classe, vous recevrez des appels Android habituels, comme dans

@Override 
public void onCreate() { } 

où vous pourrez initialiser vos instances mondiales.

Dans les activités de récupérer l'instance MyApplication avec coulée en descente:

MyApplication app = (MyApplication) getApplication(); 

espoir qui aide.

+0

vous réglez merci – JuiCe

+0

J'ai donné l'autre gars la réponse juste parce qu'il a répondu d'abord désolé:/ – JuiCe

+1

Aucun problème du tout. – mschonaker