Sie können die Application
Klasse (öffentliche Klasse im android.application-Paket) verwenden, dh:
Basisklasse für diejenigen, die den globalen Anwendungsstatus beibehalten müssen. Sie können Ihre eigene Implementierung bereitstellen, indem Sie den Namen im Tag Ihrer AndroidManifest.xml angeben. Dadurch wird diese Klasse für Sie instanziiert, wenn der Prozess für Ihre Anwendung / Ihr Paket erstellt wird.
Um diese Klasse zu verwenden, gehen Sie wie folgt vor:
public class App extends Application {
private static Context mContext;
public static Context getContext() {
return mContext;
}
public static void setContext(Context mContext) {
this.mContext = mContext;
}
...
}
In Ihrem Manifest:
<application
android:icon="..."
android:label="..."
android:name="com.example.yourmainpackagename.App" >
class that extends Application ^^^
In Aktivität B:
public class B extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sampleactivitylayout);
App.setContext(this);
...
}
...
}
In Klasse A:
Context c = App.getContext();
Hinweis :
Es ist normalerweise nicht erforderlich, die Anwendung in eine Unterklasse zu unterteilen. In den meisten Situationen können statische Singletons dieselbe Funktionalität auf modularere Weise bereitstellen. Wenn Ihr Singleton einen globalen Kontext benötigt (zum Beispiel zum Registrieren von Rundfunkempfängern), kann der Funktion zum Abrufen ein Kontext zugewiesen werden, der beim erstmaligen Erstellen des Singletons intern Context.getApplicationContext () verwendet.