제1행 코드 제3판 제6장 6.3 사용자 정의 방송 보내기
8493 단어 제1행 코드-제3판: 독서노트
6.3 사용자 정의 브로드캐스트 보내기
6.3.1 표준방송 송신
기본적으로 사용자 정의 브로드캐스트는 암시적 브로드캐스트입니다.
4
4
// Intent ,
val intent = Intent("com.example.broadcasttest.MY_BROADCAST")
intent.setPackage(packageName)//setPackage()—
sendBroadcast(intent)// ,
// com.example.broadcasttest.MY_BROADCAST BroadcastReceiver
<receiver android:name=".MyBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.example.broadcasttest.MY_BROADCAST">action>
intent-filter>
receiver>
6.3.2 순차적 브로드캐스트 전송
기본적으로 같은 표준 방송, 방송 발송 시:sendOrderedBroadcast() 방법을 사용하면 모든 방송 수신기에 우선순위를 설정할 수 있고, 방송 수신기의 onReceive() 방법에서abortBroadcast() 방법을 사용하면 전달을 중지할 수 있다.
val intent = Intent("com.swpu.ylq.broadcasttest.MY_BROADCAST")
intent.setPackage(packageName)//setPackage()—
//sendBroadcast(intent)// ,
sendOrderedBroadcast(intent,null)//
// com.example.broadcasttest.MY_BROADCAST BroadcastReceiver
<receiver
android:name=".MyBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="100">
<action android:name="com.swpu.ylq.broadcasttest.MY_BROADCAST" />
intent-filter>
receiver>
class MyBroadcastReceiver:BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
Toast.makeText(context,"received in MyBroadcastReceiver",Toast.LENGTH_SHORT).show()
abortBroadcast()
}
}