[안드로이드] BroadcastReceiver를 이용하여 Action 처리하기

 다른 어플에서 발생하는 Action이나 Event에 대해서 처리하고 싶은 경우가 발생할 수 있습니다. 이럴때 BroadcastReceiver를 이용하여 해당 기능을 구현할 수 있습니다. 자세한 것은 [이곳]에서 Intent에 대해서 자세하게 살펴보는 것이 도움이 많이 될 것입니다.



– Source

public class IntentReceiver extends BroadcastReceiver {
 
 @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();


        if (action.compareTo(Intent.ACTION_PACKAGE_REMOVED) == 0)
        {
            Log.e(“UpdateReceiver”, “ACTION_PACKAGE_REMOVED”);


           Toast.makeText(context, “ACTION_PACKAGE_REMOVED”, Toast.LENGTH_LONG).show();
         }
  }
 }


– Manifest.xml
 
 <receiver android:name=”com.IntentReceiver”>
   <intent-filter>
    <action android:name=”android.intent.action.PACKAGE_ADDED”/>
                <action android:name=”android.intent.action.PACKAGE_REMOVED”/>
                <action android:name=”android.intent.action.PACKAGE_REPLACED”/>
                <data android:scheme=”package”/>
   </intent-filter>
  </receiver>


 위와 같이 Manifest.xml 파일에서 어떠한 action을 받을 것인지 등록을 한 후에 소스에서 해당 action이 왔는지 안왔는지 체크를 하여 로직을 처리할 수 있습니다. 위에 예를 든 소스는 어떠한 다른 패키지가 UnInstall이 되었을때 시점을 잡아서 처리를 하는 것입니다. action 종류에 대해서는 안드로이드 Intent에 대한 설명 페이지에 보면 자세하게 설명이 나와 있습니다.

– 참고 자료
http://www.androidpub.com/41384
http://developer.android.com/reference/android/content/Intent.html

답글 남기기

이메일 주소는 공개되지 않습니다.