Jeongchul Kim
안드로이드 브로드캐스트 리시버 본문
안드로이드 브로드캐스트 리시버
방송과 브로드캐스트 리시버
여기서의 방송이란 각종 앱에서 발생하는 이벤트이다.
시스템 앱을 예로 화면이 켜지거나, 전화가 걸리거나, 파일을 다운로드 받았다는 등이다.
Broadcast recevier는 시스템이 방송한 정보를 수신할 수 있는 컴포넌트이다.
package com.example.broadcasttest; import android.app.Activity; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction("FILE_DOWN"); intent.putExtra("FILE_NAME","superdrioid.png"); sendBroadcast(intent); } }); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(rcv); } } package com.example.broadcasttest; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class BroadcaseSideRecevier extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { String name = intent.getStringExtra("FILE_NAME"); Toast.makeText(context,name,Toast.LENGTH_LONG).show(); } } <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.broadcasttest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="21" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> package com.example.broadcasttest; import android.app.Activity; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { BroadcastSideRecevier rcv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** 동적 등록*/ rcv = new BroadcastSideRecevier(); IntentFilter filter = new IntentFilter(); filter.addAction("FILE_DOWN"); registerReceiver(rcv, filter); Button btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction("FILE_DOWN"); intent.putExtra("FILE_NAME","superdrioid.png"); sendBroadcast(intent); } }); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(rcv); } }Broadcast 정적 등록 -> Manifest
MainActivity.java
BroadcastSideReceiver.java
AndroidManifest.xml
Broadcast 동적 등록 -> java 파일 내에서
'Android' 카테고리의 다른 글
공공 데이터 API - 버스도착정보조회 (1) | 2016.03.29 |
---|---|
안드로이드 환경설정 SharedPreferences (0) | 2016.03.23 |
안드로이드 Thread Handler AsyncTask (0) | 2016.03.23 |
구글 플레이 마켓 안드로이드 개발자 등록 (0) | 2016.03.22 |
Bing Maps API (0) | 2016.03.21 |