- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[안드로이드] BroadcastReceiver 등록 본문
BroadcastReceiver 를 등록하기 위해선
extends BroadcastReceiver 된 클래스와
manifest에 receiver에 등록 해주어야 한다.
==========================================================
테스트 하기 위한 Activity
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
public class BroadCastReceiverActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
Button broadCastTestBtn = new Button(this);
broadCastTestBtn.setText("브로드캐스트 시작");
int llHeight = LinearLayout.LayoutParams.FILL_PARENT;
int llWidth = LinearLayout.LayoutParams.WRAP_CONTENT;
ll.addView(broadCastTestBtn, new LinearLayout.LayoutParams(llHeight, llWidth));
setContentView(ll);
// 테스트 버튼을 눌러서 Logcat를 확인 하면 BroadCastReceiverEx 의 onReceive응답을 확인할수 있다.
broadCastTestBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.e("MrsohnSampleCode", "BroadCastReceiverActivity : onClick");
// manifest의 <action 에 지정된 메시지로 호출
// mrsohn.samplecode.FIRE 는 형식적으로
// 패키지명(mrsohn.samplecode.)+메시지(FIRE:임의적으로) 만들도록 한다.
// 자신에 마음대로 만들어도 상관 없음. (단 manifest 에 등록되어 있어야 할것)
Intent intent = new Intent("mrsohn.samplecode.FIRE");
//Intent로 receiver에 값 전달, getExtra로 값을 전달 한다.
intent.putExtra("type", "warning");
//Broadcast 보내기
sendBroadcast(intent);
//Broadcast 순차적으로 보낼때
//sendOrderedBroadcast(intent, null);
}
});
}
}
============================================================================================================================
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
public class BroadCastReceiverEx extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// 수신 된 Intent 처리
Uri data = intent.getData();
String type = intent.getStringExtra("type");
// 수신된 Intent의 값 조건을 확인하여 로직 실행
if (type.equals("warning")) {
Log.e("MroshnSampleCode", "BroadCastReceiverEx : onReceiver");
}
}
}
===========================================================================================================================
Manifest 설정
<!-- BroadcastReceiver 액티비티 -->
<activity android:name.BroadCastReceiverActivity" android:label="" />
<!-- manifest에 receiver 등록하기
클래스명을 적어준다.-->
<receiver android:name=".BroadCastReceiverEx">
<intent-filter>
<action android:name="mrsohn.samplecode.FIRE"></action>
</intent-filter>
</receiver>
** manifest에 등록 하지 않고
자바 코드로 BroadcastReceiver 등록할 수도 있다.
IntentFilter filler =
new IntentFilter("mrsohn.samplecode.FIRE"); //BroadcastReceiver의 action 값
//BroadcastReceiver 클래스
BroadCastReceiverEx r = new BroadCastReceiverEx();
//등록하기
registerReceiver(r, iller);
//해제할 때는
unregisterReceiver(receiver);
'★─Programing > ☆─Android' 카테고리의 다른 글
[안드로이드] Activity에 대해서 - 객체 직렬화편(Serializable) (2) | 2013.05.31 |
---|---|
[안드로이드] 실행중인 Service 목록, Process 목록 보기 (0) | 2013.05.21 |
[안드로이드] 백그라운드 AIDL 서비스 사용할때 (0) | 2013.05.21 |
[안드로이드] getBaseContext()와 getApplicationContext()의 차이 (0) | 2013.05.21 |
[안드로이드] android - proguard (0) | 2013.05.21 |