Programming/Android2009/12/29 16:33

 다른 어플에서 발생하는 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 ··· ent.html

크리에이티브 커먼즈 라이센스
Creative Commons License
2009/12/29 16:33 2009/12/29 16:33
Posted by dingpong

Trackback URL : http://www.dingpong.net/tt/trackback/219