다른 어플에서 발생하는 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();
}
}
}
<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