붉은거위 노트 (redgoose note)

[Android] 어느곳이든 이벤트와 값을 보내주는 BroadcastReceiver

Nest
Development
Category
ETC
Hit
742
Star
0

특정 클래스에서 또 다른 클래스의 이벤트를 호출하는 방법인 Broadcastintent를 사용하여 다른영역에다 이벤트를 호출하거나 값을 전송할 수 있다.

이문제때문에 정말로 미치는줄 알았다.
actionscript3.0objective-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);
        }
    }
};

참고사이트
http://mrpang.tistory.com/4