Android - pobieranie kontekstu z odbiornika Broadcast onReceive () do wysłania

84

Zasadniczo chcę dokonać zamiaru i przekazać go do usługi z onReceive () mojego BroadcastReceiver's.

Do tej pory zawsze korzystałem z View.getContext (), ale tutaj utknąłem. Jak dokładnie mogę uzyskać kontekst, aby móc go użyć public Intent (Context packageContext, Class<?> cls)?

madu
źródło

Odpowiedzi:

303
public abstract void onReceive(Context context, Intent intent)

onReceivedaje kontekst. Czego jeszcze chcesz?

Falmarri
źródło
9
Och, poważnie, nie widziałem tego, dopóki tego nie zobaczyłem.
Blasanka
2

Cóż, wspomniana powyżej odpowiedź nie jest przydatna. Możesz używać kontekstu tak długo, jak jesteś w trybie onReceive. po zwróceniu kodu z onReceive kontekst nie istnieje.

Dlatego w opisie problemu podano, że chciałeś uruchomić usługę przy użyciu tego kontekstu podczas tworzenia intencji, a następnie wywołać startService z tym obiektem kontekstu. Nie można tego zrobić.

Przeczytaj, co można, a czego nie można zrobić w kontekście BroadcastReceiver.

http://developer.android.com/reference/android/content/BroadcastReceiver.html

Bibhay Ranjan
źródło
to, co powiedziałeś, nie jest prawdą. możesz uruchomić usługę z BroadcastReceivers, ale nie możesz się z nimi powiązać.
Bardya Momeni
0

W BroadcastReceiver

onReceive(Context context, Intent intent)

metoda zapewnia kontekst

więc

aby rozpocząć aktywność

context.startActivity(intent);

i rozpocząć korzystanie z usługi

context.startService(intent);
L.sagar
źródło