5.3 사용자 정의 브로드캐스트 보내기

3911 단어 Android
아이디어:
  • 새 라디오 수신기 MyBroadcastReceiver
  • 안드로이드 매니페스트에서.xml에 방송 수신기를 등록하고 intent-fliter에서 수신할 방송의 이름을 XXX
  • MainActivity에서 Intent 대상을 구축하여 보낼 방송의 명칭값인 XXX를 전송하고sendBroadcast() 방법을 사용하여 방송을 전송한다
  • MyBroadcastReceiver 코드는 다음과 같습니다.
    public class MyBroadcastReceiver extends BroadcastReceiver {
        public MyBroadcastReceiver() {
        }
    
        @Override
        public void onReceive(Context context, Intent intent) {
            Toast.makeText(context,"receive in mybroadcastreceiver",Toast.LENGTH_SHORT).show();
        }
    }

    AndroidManifest.xml 코드는 다음과 같습니다
            <receiver
                android:name=".MyBroadcastReceiver"
                android:enabled="true"
                android:exported="true">
                <intent-filter android:priority="100">
                    <action android:name="com.example.a51990.MY_BROADCAST"/>
                intent-filter>
            receiver>

    MainActivity 코드는 다음과 같습니다.
            Button button = (Button) findViewById(R.id.button);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intent=new Intent("com.example.a51990.MY_BROADCAST");
                    sendBroadcast(intent);
                }
            });

    질서정연한 방송을 보내려면 sendBroadcast(intent);//표준 방송을 sendOrderedBroadcast(intent,null)로 보내기;질서정연한 방송을 보내는 것이 질서정연한 방송이라면 각 방송 수신기가 방송을 받는 순서는 선후가 있고 안드로이드 매니페스트에서 할 수 있다.xml 수정 우선순위
                <intent-filter android:priority="100">
                    <action android:name="com.example.a51990.MY_BROADCAST"/>
                intent-filter>

    우선순위가 높은 방송 수신기는 방송이 계속 뒤로 전달되지 않도록 차단할 수 있으며, 온 Receive () 방법에서abortBroadcast () 방법을 호출하면 된다.예컨대
        @Override
        public void onReceive(Context context, Intent intent) {
            Toast.makeText(context,"receive in mybroadcastreceiver",Toast.LENGTH_SHORT).show();
            abortBroadcast();
        }

    좋은 웹페이지 즐겨찾기