티스토리 뷰

728x90
        <receiver android:name="com.example.패키지명.MainActivity$BluetoothDataReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="액션명" />
            </intent-filter>
        </receiver>

MainActivity 클래스 안에 BluetoothDataReceiver라는 BroadcastReceiver 클래스를 넣었다고 할 때, 위와 같이 지정해주면 된다.

보통 액션명은 com.example.패키지명.액션설명 이렇게 많이들 쓴다. "RECEIVED_DATA"처럼 액션에 대한 설명만 간단히 적어도 문제는 없다.

 

서비스 클래스의 변수가 변경될 때, MainActivity UI를 바꾸는 브로드캐스트를 바꾸려고 했다. 그런데 MainActivity 클래스 내에서만 액티비티의 ui를 변경할 수 있으므로(setText 등) 액티비티 안에 브로드캐스트의 클래스를 집어넣었다. (동적으로 브로드캐스트를 선언해도 되지만, 그럴 경우 액션을 발생시키는 클래스가 다른 클래스라면 LocalBroadcastManager를 사용해야 한다.)


이때 브로드캐스트 클래스는 public static이어야 한다. 당연히 클래스 안에서 선언한 멤버변수를 제외한 모든 변수, 메소드들도 static이어야 한다.

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함