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)?

Odpowiedzi:


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

onReceivedaje kontekst. Czego jeszcze chcesz?


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


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);
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.