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 파일 에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()함 수 를 자동 으로 호출 하여 메시지 처 리 를 합 니 다.읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.