브로드 캐스트에 대해 한 가지 알고 싶습니다.활동 변경 중 브로드 캐스트가 끊깁니다.
두 개의 활동 A와 B가있는 경우. 또한 두 가지 활동의 onResume() 및 onPause()에 등록 된 브로드 캐스트 수신기가 있습니다. 하나의 활동이 일시 중지되었지만 다른 활동이 아직 재개되지 않은 경우 알림을 받으면 어떻게됩니까? 내 방송이 유실 되나요?
그런 경우에는 끈끈한 방송을 사용하면 좋겠습니까?
브로드 캐스트에 대해 한 가지 알고 싶습니다.활동 변경 중 브로드 캐스트가 끊깁니다.
두 개의 활동 A와 B가있는 경우. 또한 두 가지 활동의 onResume() 및 onPause()에 등록 된 브로드 캐스트 수신기가 있습니다. 하나의 활동이 일시 중지되었지만 다른 활동이 아직 재개되지 않은 경우 알림을 받으면 어떻게됩니까? 내 방송이 유실 되나요?
그런 경우에는 끈끈한 방송을 사용하면 좋겠습니까?
저는 현재 귀하와 같은 상황에 있으며 스티커 방송으로 해결하고 있습니다.
문서에 따르면 고정 브로드 캐스트는 브로드 캐스트가 완료된 후에도 계속 남아 있습니다. 따라서 어떤 활동이 일시 중지 - 다시 시작주기 (방향 변경)에있는 경우 수신기를 onResume()
에 등록하면 이러한 방송 알림을 받게됩니다.
removeStickyBroadcast(matchingIntent)
(으)로 닫지 않고 계속 활동을 재개하면 다시 방송을들을 수 있기 때문에 "영원히"머물러 있기 때문에이 방송과 함께주의하십시오.
removeStickyBroadcast()
스티커 브로드 캐스트를 제거
sendStickyBroadcast()
스티커 방송을 전송합니다.
또한 매니페스트에 대한 액세스 권한이 BROADCAST_STICKY
이어야합니다. 안에 넣어주세요 <manifest>
태그 :
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>
감사합니다. Andres. 나는 [스레드] (http://groups.google.com/group/android-developers/browse_thread/thread/f37e3549a5e1be66) 특히 마지막 게시물을 읽은 후에 조금 혼란스러워합니다. cross-apllication 호출을 위해 끈끈한 방송을 사용해야하는 것에 대한 진술은 설득력있게 보인다. – Ivan
나는 끈적 거리는 방송으로 나의 시험 동안에 동일한 기사를 읽었다. 기사 세부 사항에 따라 방송 된 의도가 액션, 데이터, 카테고리 및 유형과 일치하면 끈적 거리는 방송이 대체됩니다. 이 필드를 동일하게 유지하고 인 텐트 엑스트라를 변경하면 항상 최신 방송을 볼 수 있습니다. 브로드 캐스트는 모든 시스템을 통해 전송되므로 다른 앱이이를 잡을 수 없도록 의도 한 동작에 접두어로 패키지 이름을 첨부하는 것이 좋습니다. 예 : intent.setAction ([PACKAGE_NAME] .update). – Andres
이 답변이 게시되었을 당시 유효한 해결책 이었지만 Lollipop, API 21 이후로 끈적 거리는 방송은 더 이상 사용되지 않습니다. – Sufian