 |
|
|  |
[Android] BroadcastReceiver »ç¿ëÇϱâ |
|
|
 |
8³â Àü |
BroadCast Receiver¶õ
¾Èµå·ÎÀ̵å 4´ë ÄÄÆ÷³ÍÆ® Áß¿¡ ÇϳªÀÌ´Ù. ¸» ±×´ë·Î ¹æ¼Û ¼ö½ÅÀÚÀÌ¸ç ½Ã½ºÅÛÀ̳ª ¾Û µî¿¡¼ À̺¥Æ® ¹ß»ý½Ã ¹æ¼ÛÀ» ÇØÁÖ´Â °³³äÀÌ´Ù. ÀÌ·¸°Ô ¹æ¼ÛµÈ À̺¥Æ®´Â °¢ ¾Û¿¡¼ ÇÊ¿äÇÑ ¹æ¼Û À̺¥Æ®¸¦ ¹Þ¾ÆµéÀÌ°í À̺¥Æ®¿¡ ´ëÇÑ Ã³¸®¸¦ ¸®½Ã¹ö¸¦ ÅëÇØ ÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù.
SendBroadCast ¹æ¼Û º¸³»±â
SendBroadcast¶ó´Â Context¿¡ Æ÷ÇÔµÈ ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ÀÎÅÙÆ®¸¦ Àü´ÞÇÑ´Ù. Intent¿¡ putExtra¸¦ ÅëÇØ Integer, boolean, String µî ¿©·¯ ´ÜÀÏ Å¸ÀÔ ¶Ç´Â ¹è¿ÀÇ Ç÷Å·ΠÀü´Þ ÇÒ ¼ö ÀÖ´Ù.
Intent sendIntent = new Intent("com.dwfox.myapplication.SEND_BROAD_CAST");
sendIntent.putExtra("isBoolean", true);
sendIntent.putExtra("sendInteger", 123);
sendIntent.putExtra("sendString", "Intent String");
sendBroadcast(sendIntent);
Receiver ¹æ¼Û ¹Þ±â
SendBroadcast¸¦ ÅëÇØ Àü´ÞµÈ Intent¸¦ ¼ö½ÅÇÏ´Â ¸®½Ã¹ö(Receiver)¸¦ ±¸ÇöÇÏ¿©¾ß ÇÑ´Ù. ¸®½Ã¹ö¿¡´Â Á¤Àû¸®½Ã¹ö¿Í µ¿Àû ¸®½Ã¹ö°¡ ÀÖ´Ù.
Á¤Àû ¸®½Ã¹ö : ÇÑ ¹ø µî·ÏÇϸé ÇØÁ¦ÇÒ ¼ö ¾ø´Ù.
Á¤Àû¸®½Ã¹ö´Â AndroidManifest.xml¿¡¼ recevier¸¦ µî·ÏÇÏ¿© »ç¿ëÇϵµ·Ï ÇÑ´Ù. ¾Æ·¡¿Í °°ÀÌ ¸®½Ã¹ö¸¦ »ç¿ëÇÒ Å¬·¡½º¿Í intent Action nameÀ» µî·ÏÇÑ´Ù.
<receiver android:name=".TestReceiver">
<intent-filter>
<action android:name="com.dwfox.myapplication.SEND_BROAD_CAST"/>
</intent-filter>
</receiver>
ºê·Îµåij½ºÆ® ¸®½Ã¹ö (BroadcastReceiver) Ŭ·¡½º¸¦ ±¸ÇöÇÏ¿© ¼ö½Å 󸮸¦ µî·ÏÇÑ´Ù.
public class TestReceiver extends BroadcastReceiver {
private static final String TAG = TestReceiver.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
String name = intent.getAction();
// Intent SendBroadCast·Î º¸³½ action TAG À̸§À¸·Î ÇÊ¿äÇÑ ¹æ¼ÛÀ» ã´Â´Ù.
if(name.equals("com.dwfox.myapplication.SEND_BROAD_CAST ")){
Log.d(TAG, "BroadcastReceiver :: com.dwfox.myapplication.SEND_BROAD_CAST :: "
+ intent.getStringExtra("sendString")); // putExtra¸¦ ÀÌ¿ëÇÑ StringÀü´Þ
}
}
}
µ¿Àû ¸®½Ã¹ö : µî·Ï°ú ÇØÁ¦°¡ ÀÚÀ¯·Ó´Ù.
Á¤Àû¸®½Ã¹ö¿Í´Â ´Þ¸® AndroidManifest.xml¿¡ Ãß°¡·Î ÀÔ·Â ÇÒ »çÇ×ÀÌ ¾ø´Ù.
public class TestActivity extends Activity {
private static final String TAG = ReceiverVideoFinish.class.getSimpleName();
BroadcaastReceiver mReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//ºê·Îµåij½ºÆ®ÀÇ ¾×¼ÇÀ» µî·ÏÇϱâ À§ÇÑ ÀÎÅÙÆ® ÇÊÅÍ
IntentFilter intentfilter = new IntentFilter();
intentfilter.addAction("com.dwfox.myapplication.SEND_BROAD_CAST");
//µ¿Àû ¸®½Ã¹ö ±¸Çö
mReceiver = new BroadcastRecevier(){
@Override
public void onRecevie(Context context, Intent intent){
String sendString = intent.getStringExtra("sendString");
Log.d(TAG, sendString);
}
};
//Receiver µî·Ï
registerReceiver(mReceiver, intentFilter);
}
//µî·ÏµÈ Receiver´Â ¹Ýµå½Ã ÇØÁ¦ ÇØÁÖ¾î¾ß ÇÑ´Ù.
unregisterReceiver(mReceiver);
}
µ¿Àû¸®½Ã¹ö´Â µî·Ï°ú ÇØÁ¦°¡ ÀÚÀ¯·Ó°Ô ÀÌ·ç¾îÁüÀ¸·Î¼ ÇÊ¿äÇÑ ºÎºÐ¿¡ ¸®½Ã¹ö¸¦ µî·ÏÇÏ°í ÇØÁöÇÏ¸é¼ ½Ã½ºÅÛÀ̳ª ¾Û¿¡ ºÎÇϸ¦ ÁÙÀÏ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ ÇØÁ¦¸¦ ÀûÀýÇÏ°Ô ÇØÁÖÁö ¾ÊÀ¸¸é ¸Þ¸ð¸® ¸¯ÀÌ ¹ß»ýÇÑ´Ù.
|
|
̵̧ : 341 |
̵̧
¸ñ·Ï
|
|
|  |
|