[Android] 어느곳이든 이벤트와 값을 보내주는 BroadcastReceiver
- Nest
- Development
- Category
- ETC
- Hit
- 742
- Star
- 0
특정 클래스에서 또 다른 클래스의 이벤트를 호출하는 방법인 Broadcast
와 intent
를 사용하여 다른영역에다 이벤트를 호출하거나 값을 전송할 수 있다.
이문제때문에 정말로 미치는줄 알았다.actionscript3.0
과 objective-c
에서도 이 문제때문에 구글링 미친듯이 했었지... 털썩~
AnotherClass.java
이벤트와 값을 보낸다.배열로도 전송가능
Intent sendIntent = new Intent("com.example.xxx");
sendIntent.putExtra("MSG", "send message text");
sendBroadcast(sendIntent);
AndroidManifest.xml
이벤트 알림에 대한 권한을 Manifest파일에서 설정해줘야한다.
<manifest>
<uses-permission android:name="com.example.xxx" />
</manifest>
MainActivity.java
이벤트 알림을 받고 처리하고은 클래스에서 삽입
// 먼저 실행시켜야하는 곳에 삽입해야한다.
protected void onCreate()
{
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.example.xxx"); // 복수로 등록가능
registerReceiver(mainBroadcastReceiver, new IntentFilter(intentFilter));
}
// Event Broadcast receiver
private BroadcastReceiver mainBroadcastReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// context값을 구분하여 어떤 이벤트인지 구분처리할 수 있다.
if (action.equals("com.example.xxx"))
{
ArrayList msg = intent.getStringExtra("MSG");
Log.d(TAG, msg);
}
}
};