6

Android 1.5에서 Android 2.3.4까지 제대로 작동하는 시작 프로그램 활동이없는 응용 프로그램이 있습니다. 내 브로드 캐스트 리시버가 시작합니다. 그러나 Honeycomb (Motorola Xoom)에서 내 브로드 캐스트 수신기가 전혀 작동하지 않습니다 (어떤 의도도 잡히지 않습니다). 내 매니페스트에 실행 활동을 추가하는 경우 : Android - [Xoom/Honeycomb] 응용 프로그램이 LAUNCHER 활동없이 작동하지 않습니다.

<activity android:label="@string/app_name" android:name="com.myapp.MainActivity"> 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> 
</activity> 

그런 다음 내 응용 프로그램이 제대로 작동 (방송 수신기 필요한 모든 의도를 잡아 내 서비스를 시작합니다).

도움에 매우 감사 할 것입니다.

+0

브로드 캐스트 리시버는 어디에 정의되어 있습니까? –

+0

@ 존 윌리스 : 리시버는 매니페스트에 정의되어 있습니다. CommonsWare와 Gaurav는 문제를 설명했다. 도와 줘서 고마워! – Kacper86

답변

10

Honeycomb 3.1 이상을 실행하고 있습니까? 그렇다면보십시오 here. 응용 프로그램이 설치되면 중지 된 상태입니다. 응용 프로그램이 처음 실행되면 중지 된 상태에서 벗어납니다.

정지 상태의 응용 프로그램이 모든 브로드 캐스트 인 텐트에서 시작되지 않습니다. 브로드 캐스트 인 텐트의 보낸 사람은 중지 된 응용 프로그램도 시작하려는 경우 Intent.FLAG_INCLUDE_STOPPED_PACKAGES 플래그를 지정해야합니다. 당신이 의도를 전송하는 코드를 변경할 수없는 경우

Intent intent = new Intent(MY_INTENT_ACTION); 
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); 
sendBroadcast(intent); 

는 가장 좋은 건 런처 활동을 유지하는 것입니다. 설치 후 사용자가 응용 프로그램을 시작할 때마다 중지 상태에서 벗어나 브로드 캐스트 수신이 시작됩니다.

참고 사용자는 장치 설정의 응용 프로그램 관리에서 응용 프로그램을 중지 된 상태로 되돌릴 수 있습니다.

+0

빠른 응답을 보내 주셔서 감사합니다. – Kacper86

4

Android 3.1 이상에서는 사용자가 활동 시작과 같은 다른 방법으로 애플리케이션을 한 번 이상 시작하지 않으면 BroadcastReceivers이 호출되지 않습니다.

사용자는 활동이없는 응용 프로그램에 혼란을 느끼기 쉽기 때문에 온라인 도움말이 필요하다면 처음에는 활동이 있었어야합니다. Android 3.1을 사용하면 훨씬 더 중요합니다.

+0

빠른 응답을 보내 주셔서 감사합니다! – Kacper86

관련 문제