[android] Android에서 sendStickyBroadcast와 sendBroadcast의 차이점은 무엇입니까

차이점은 무엇이며 sendStickyBroadcast그리고 sendBroadcast안드로이드는?



답변

Android SDK의 내용은 다음과 같습니다sendStickyBroadcast() .

“sticky”인 sendBroadcast (Intent)를 수행합니다. 즉, 브로드 캐스트가 완료된 후에도 전송중인 인 텐트가 유지되므로 다른 사용자가 registerReceiver (BroadcastReceiver, IntentFilter)의 반환 값을 통해 해당 데이터를 빠르게 검색 할 수 있습니다. 다른 모든 방법에서 이것은 sendBroadcast (Intent)와 동일하게 작동합니다.

운영 체제를 통해 전송되는 고정 브로드 캐스트의 한 가지 예는 ACTION_BATTERY_CHANGED. 당신 registerReceiver()이 그 행동 을 요구할 때 -심지어 null BroadcastReceiver-당신은 Intent그 행동에 대해 마지막 방송 된 것을 얻습니다 . 따라서 배터리의 모든 향후 상태 변경에 대해 반드시 등록하지 않고도이를 사용하여 배터리 상태를 찾을 수 있습니다.


답변

유형 :-로컬, 일반, 정렬 및 고정

일반 방송

:-sendBroadcast () 사용

:-비동기 방송

:-모든 수신기는 특정 순서가 아닌 브로드 캐스트를받습니다.

주문 된 방송

:-sendOrderedBroadcast () 사용

:-동기 방송

:-수신기는 우선 순위 기반에서 브로드 캐스트를 수신합니다.

:-우리는이 유형의 방송을 중단 할 수도 있습니다.

지역 방송

:-브로드 캐스트가 동일한 프로세스 내에서만 사용되는 경우에만 사용

고정 방송

:-시스템에서 전송 및 처리 한 후에는 정상적인 브로드 캐스트 인 텐트를 더 이상 사용할 수 없습니다.

:-sendStickyBroadcast (Intent) 사용

:-해당 인 텐트가 고정되어있어 전송중인 인 텐트가 브로드 캐스트가 완료된 후에도 유지됩니다.

:-이 때문에 다른 사람들은 registerReceiver (BroadcastReceiver, IntentFilter)의 반환 값을 통해 해당 데이터를 빠르게 검색 할 수 있습니다.

:-sendBroadcast (Intent)와 동일합니다.


답변

sendbroadcast() -일반 방송이지만 우선 순위도 설정할 수 있습니다.

sendstickybroadcast()-이와 함께 전달 된 의도는 코드 (동적 수신기)를 통해 등록하는 향후 사용자를 위해 달라집니다. Android에 고정되며 모든 브로드 캐스트 수신기의 향후 요청에 다시 전달되거나 다시 브로드 캐스트되는 브로드 캐스트

누군가가 스티키 브로드 캐스트를 보내면 sendstickyBroadcast(intent);동적 수신기를 사용하는 미래의 사용자가 해당 브로드 캐스트를 사용할 수 있습니다.

그러나 이제는 사용하지 않는 sendStickyBroadcast()방법을 사용해서는 안됩니다.

Android 문서에서 :

이 메서드는 API 레벨 21에서 더 이상 사용되지 않습니다. 고정 브로드 캐스트를 사용해서는 안됩니다. 보안 (누구나 액세스 가능), 보호 (누구나 수정할 수 있음) 및 기타 많은 문제를 제공하지 않습니다. 권장되는 패턴은 고정되지 않은 브로드 캐스트를 사용하여 무언가 변경되었음을보고하고 앱이 원할 때마다 현재 값을 검색하는 또 다른 메커니즘을 사용하는 것입니다.

이게 도움이 되길 바란다.


답변