2015-02-10 6 views
11

Czy istnieje sposób, w jaki można uzyskać aplikację z kontekstu. Zauważyłem, że działanie i usługa ma metodę getApplication(), ale kontekst nie.Jak uzyskać aplikację z kontekstu

Tło:

Używam/rozszerzenie GCMBaseIntentService i

protected abstract void onMessage (Context context, Intent intent) 

daje mi kontekst jako parametr. Chciałbym uzyskać obiekt Application więc mogę spuszczonymi go MyApplication i odzyskać niektóre zmienne

Dzięki

+0

(YourApplicationClass) context.getApplicationContext() – Leonidos

Odpowiedz

21

Context#getApplicationContext powróci instancji Application.

+0

Jak to zrobić? Dokumenty mówią, że zwróci on "kontekst ** ** pojedynczego, globalnego obiektu aplikacji bieżącego procesu." Typem zwracanym jest "Kontekst", a nie "Aplikacja". 'Context' jest klasą przodków' Application', ale skąd wiadomo, że 'getApplicationContext()' zwróci instancję 'Application'? Podejrzewam, że możesz mieć rację, ale chciałbym zobaczyć wiarygodne źródło, które się zgadza. – LarsH

+2

Zobacz na przykład https://stackoverflow.com/questions/5018545/getapplication-vs-getapplicationcontext, który mówi, że 'getApplicationContext()' will ** not ** zawsze zwróci ten sam obiekt co twoja instancja 'Application'. – LarsH