Vous pouvez utiliser Application
(classe publique dans le paquet Android.application), c'est-à-dire :
Classe de base pour ceux qui ont besoin de maintenir l'état global de l'application. Vous pouvez fournir votre propre implémentation en spécifiant son nom dans votre fichier AndroidManifest.xml, ce qui entraînera l'instanciation de cette classe sera instanciée pour vous lorsque le processus de votre est créé.
Pour utiliser cette classe, il faut
public class App extends Application {
private static Context mContext;
public static Context getContext() {
return mContext;
}
public static void setContext(Context mContext) {
this.mContext = mContext;
}
...
}
Dans votre manifeste :
<application
android:icon="..."
android:label="..."
android:name="com.example.yourmainpackagename.App" >
class that extends Application ^^^
Dans l'activité B :
public class B extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sampleactivitylayout);
App.setContext(this);
...
}
...
}
Dans la classe A :
Context c = App.getContext();
Note :
Il n'est normalement pas nécessaire de sous-classer l'application. [ ] les singletons statiques peuvent fournir la même fonctionnalité de manière plus modulaire. modulaire. Si votre singleton a besoin d'un contexte global (par exemple pour enregistrer des récepteurs de diffusion), la fonction ), la fonction permettant de le récupérer peut se voir attribuer un contexte Context qui utilise en interne Context.getApplicationContext() lors de l'utilisation de la fonction construction du singleton.