티스토리 뷰

728x90
반응형

동적 BroadcastReceiver



동력 BroadcastReceiver 는 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<receiver
        android:name=".receiver.MyCameraBroadcastReceiver"
        android:enabled="true" >
        <intent-filter android:priority="9999999" >
             
             
            <action android:name="android.provider.MediaStore.ACTION_IMAGE_CAPTURE" />
            <action android:name="android.intent.action.CAMERA_BUTTON" />
             
            <category android:name="android.intent.category.DEFAULT" />
 
            <data android:mimeType="image/*" />
        </intent-filter>
    </receiver>
 
cs



이처럼 AndroidManifest.xml 에 등록하는 정적 리시버와 다르게 



1
2
registerReceiver( BroadcastReceiver, IntentFilter )
unregisterReceiver( BroadcastReceiver )
cs



이 함수를 통해 리시버를 등록, 해제 한다


등록시에 IntentFilter 에는 수신하고자 하는 이벤트를 전달해 준다



사용법은


http://helloit.tistory.com/267


등 여러곳에 잘 나와있으니 참고하자



정적 리시버와의 차이점


정적 리시버를 등록하여 사용하면 구현한 앱이 동작 중이 아닌 상황에서도


리시버가 동작한다


이처럼 무의미한 CPU 와 배터리 사용을 방지하기 위해 동적인 방법으로


리시버를 등록하게 된다



우선순위


동적 리시버는 동시에 실행되기 때문에 우선순위를 높이는 것이 큰 의미는 없지만


sendOrderedBroadcast() 함수를 사용하면 순서대로 처리되도록 할 수 있다


(특정 리시버가 방송을 수신했을 때 다른 리시버가 방송을 받지 못하도록 중단할 수 있는 기능이 있다)


반면 순서대로 실행되는 정적 리시버는 우선순위에 의미가 있다



정적 리시버의 우선순위는 AndroidManifest.xml 을 통해 설정 가능하다


<intent-filter android:priority="9999999" >





[ sticky intent 에 관하여 ]

http://blog.naver.com/PostView.nhn?blogId=huewu&logNo=110090854068

반응형
공지사항
최근에 올라온 글