Android Intent 방송 메시지 전송 실례 상세 설명

Android Intent 방송 메시지 보 내기
Intent 의 또 다른 용 도 는 방송 메 시 지 를 보 내 는 것 이다.응용 프로그램 과 안 드 로 이 드 시스템 은 모두 Intent 로 방송 메 시 지 를 보 낼 수 있다.방송 메 시 지 는 응용 프로그램 과 밀접 한 관 계 를 가 진 데이터 정보 일 수도 있 고 안 드 로 이 드 의 시스템 정보 일 수도 있다.예 를 들 어 네트워크 연결 변화,배터리 전량 변화,받 은 문자 나 시스템 설정 변화 등 이다.프로그램 이 BroadcastReceiver 를 등록 하면 지정 한 방송 정 보 를 받 을 수 있 습 니 다.
Intent 를 사용 하여 방송 메 시 지 를 보 내 는 것 은 매우 간단 합 니 다.하나의 Intent 를 만 들 고 sendbBroadcast()함 수 를 호출 하면 Intent 가 가지 고 있 는 정 보 를 방송 할 수 있 습 니 다.그러나 주의해 야 할 것 은 Intent 를 구성 할 때 전체 국면 에서 유일한 문자열 을 정의 하여 실행 할 동작 을 표시 해 야 합 니 다.보통 응용 프로그램 패키지 의 이름 을 사용 합 니 다.Intent 에서 추가 데 이 터 를 전달 하려 면 Intent 의 putExtra()방법 을 사용 할 수 있 습 니 다.다음 코드 는 방송 메시지 에 사용 할 Intent 를 구성 하고 추가 데 이 터 를 추가 한 다음 sendbBroadcast()를 호출 하여 방송 메 시 지 를 보 냅 니 다.

String UNIQUE_STRING="edu.hrbeu.BroadcastReceiverDemo";
Intent intent=new Intent(UNIQUE_STRING);
intent.putExtra("key1","value1");
intent.putExtra("key2","value2");
sendBroadcast(intent);
BroadcastReceiver 는 라디오 메 시 지 를 감청 하 는 데 사 용 됩 니 다.AndroidManifest.xml 파일 이나 코드 에 BroadcastReceiver 를 등록 하고 Intent 필 터 를 사용 하여 처리 할 라디오 메 시 지 를 지정 할 수 있 습 니 다.BroadcastReceiver 를 만 들 려 면 BroadcastReceiver 클래스 를 계승 하고 onReceive()방법 을 다시 불 러 와 야 합 니 다.예제 코드 는 다음 과 같다.

public class MyBroadcastReceiver extends BroadcastReceiver{
 @Override
 public void onReceive(Context context,Intent intent){
 //TODO: React to the Intent received.
 }
}
안 드 로 이 드 시스템 이 등 록 된 BroadcastReceiver 와 일치 하 는 방송 메 시 지 를 받 으 면 안 드 로 이 드 시스템 은 자동 으로 이 BroadcastReceiver 를 호출 하여 방송 메 시 지 를 받는다.BroadcastReceiver 가 이에 맞 는 라디오 메 시 지 를 받 으 면 onReceiver()방법 이 호출 되 지만 onReceive()방법 은 5 초 안에 실행 되 어야 합 니 다.그렇지 않 으 면 Android 시스템 은 이 구성 요소 가 응답 을 잃 었 다 고 생각 하고 사용자 에 게 이 구성 요 소 를 강제로 닫 으 라 고 알려 줍 니 다.
다음은 간단 한 예 이다.
방송 메시지 발송 키 코드

botton.setOnClickListener(new OnClickListener()){
  public void onClick(View view){
   Intent intent=new Intent("edu.hrbeu.BroadcastReceiverDemo");
   intent.putExtra("message",entryText.getText().toString());
   sendBroadcast(intent);
  }
 }};
AndroidManifest.xml 파일 에 BroadcastReceiver 를 등록 합 니 다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="edu.hrbeu.BroadcastReceiverDemo">

 <application
  android:allowBackup="true"
  android:icon="@mipmap/ic_launcher"
  android:label="@string/app_name"
  android:supportsRtl="true"
  android:theme="@style/AppTheme">
  <activity
   android:name=".BroadcastReceiverDemo"
   android:label="@string/app_name"
   >
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
  <receiver android:name=".MyBroadcastReceiver">
   <intent-filter>
   <action android:name="edu.hrbeu.BroadcastReceiverDemo"/>
   </intent-filter>
  </receiver>
 </application>

</manifest>

AndroidManifest.xml 파일 에노드 를 만 들 었 습 니 다.그 중에서 Intent 필터 의 동작 은 edu.hrbeu.broadcastReceiverDemo 라 고 밝 혔 습 니 다.이것 은 라디오 메 시 지 를 보 내 는 Intent 의 동작 과 일치 합 니 다.이 는 BroadcastReceiver 가 동작 을 edu.hrbeu.broadcastReceiverDemo 로 받 아들 일 수 있 음 을 나타 냅 니 다.
MyBroadcastReceiver.Java 에서 사용자 정의 BroadcastReceiver 를 만 들 었 습 니 다.핵심 코드 는 다음 과 같 습 니 다.

public class MyBroadcastReceiver extends BroadcastReceiver{
 @Override
 public void onReceive(Context context,Intent intent){
 String msg=intent.getStringExtra("message");
 Toast.makeText(context,msg,Toast.LENGTH_SHORT).show();
 }
}
코드 첫 줄 은 먼저 BroadcastReceiver 클래스 를 계승 하고 세 번 째 줄 에 onReveave()함 수 를 다시 불 러 옵 니 다.AndroidManifest.xml 파일 이 정의 하 는 라디오 메 시 지 를 받 으 면 프로그램 은 onReveave()함 수 를 자동 으로 호출 하여 메시지 처 리 를 합 니 다.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기