2014-09-29 1 views
0

내가 내 MainActivity의에서 onCreate에서 의도를 방송하기 위해 다음과 같은 사용하고 내 클래스에 의해 수신되지 오류가 있지만 내 Log 중 하나가 표시되지 않습니다.방송은

나는 이것이 실제로는 BroadcastReceiver을위한 것이 아니라는 것을 알고 있지만,이 경우 수동으로 한 번 트리거해야합니다.

답변

0

Explicit Intents (대상 클래스를 지정하는 Intent)는 BroadcastReceivers를 시작하지 않고 대신 IntentFilters를 사용하여 implcit 인 텐트를 통해 인 텐트를 수신합니다. 그 이유는 전체 브로드 캐스팅 메커니즘의 목적은 누가 누가 청취 할지를 모른 채 이벤트를 보낼 수 있기 때문입니다.

http://developer.android.com/guide/components/intents-filters.html#Receiving

이를 달성하는 방법은 다음과 같습니다

먼저 그것을 듣고 suppossed되는 조치와 함께 매니페스트에서 브로드 캐스트 리시버를 선언합니다. 여기 당신은 그것을 수행하는 방법에 대한 예제가 : 액션 문자열을 원하는 문자열이 될 수

<receiver android:name="your.package.MyNewReceiver" > 
    <intent-filter> 
     <action android:name="your.action.string" /> 
    </intent-filter> 
</receiver> 

을하지만, 일반적으로 자신의 응용 프로그램의 패키지와 자바 패키지 스타일에 뭔가를 선택하는 것이 좋습니다 .

Intent intent = new Intent("your.action.string"); 
sendBroadcast(intent); 

는 희망이 도움이 :

마지막 액션 문자열이 방법을 지정하는 의도를 보냅니다.