2013-04-03 14 views
14

Jestem zainteresowany wykorzystaniem oczekujących zamiarów w lokalnych programach. Aby się upewnić, używam następujących elementów do rejestrowania odbiorników i wysyłania audycji: android.support.v4.content.LocalBroadcastManager.Czy możesz używać oczekujących zamiarów w lokalnych transmisjach?

Posiadam lokalny odbiornik telewizyjny w usłudze, która działa. Próbuję wysyłać lokalne transmisje z niestandardowego układu powiadomień, który zawiera elementy, które można kliknąć.

Lokalny odbiornik transmisji - otrzymuje proste intencje działania. Próbowałem coś takiego bezskutecznie:

Intent backintent = new Intent("GOTO_START_BROADCAST"); 
PendingIntent backIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, backintent, 0); 
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification); 
contentView.setOnClickPendingIntent(R.id.imageView1, backIntent); 
+0

Co jest nie tak z użyciem IntentService zamiast LocalBroadcast dla tego przypadku użycia? –

Odpowiedz

22

Jestem zainteresowany wykorzystaniem oczekujących zamiary lokalnych audycji.

To nie jest możliwe.

Celem PendingIntent jest zezwolenie na inny proces na wykonanie żądanej czynności, na przykład wysłanie transmisji.

Celem LocalBroadcastManager jest prowadzenie transmisji w ramach procesu.

W związku z tym PendingIntent może emitować regularną transmisję, ale nie przez LocalBroadcastManager.

+0

Dziękuję za wyjaśnienia. – Nims

+0

Czy istnieje sposób dla mnie, aby obiekt taki jak 'PendingIntent.UPDATE_CURRENT' itp., Używając' LocalBroadcastManager'? Zasadniczo, gdy zdarza się wiele wydarzeń naraz, chciałbym wysłać tylko jeden "LocalBroadcast" zamiast jednego dla każdego zdarzenia. Jak miałbym to zrobić za pomocą 'LocalBroadcast'. – 500865

+1

@ 500865: 'PendingIntent' nie może pracować z' LocalBroadcastManager'. 'PendingIntent' jest zaprojektowany do pracy ponad granicami procesu; 'LocalBroadcastManager' ma na celu * nie * pracę ponad granicami procesu. – CommonsWare

Powiązane problemy