私の Android アプリが削除されたら、アプリが SD カードに作成したファイルも削除したいと思います。これらのファイルは数メガバイトを消費する可能性があり、私のアプリでしか使用できないためです。
PACKAGE REMOVED インテントを受け取ることが、これを行う場所になるようです。ただし、ブロードキャスト レシーバーが呼び出されることはありません。PACKAGE REMOVED インテントが送信される前に削除されたようです。
コードは次のとおりです。
public class UninstallReceiver は BroadcastReceiver を拡張します { @オーバーライド public void onReceive(コンテキスト コンテキスト、インテント インテント) { 文字列アクション = インテント.getAction(); Log.i("U", "アクション" + アクション); 等 } }
そして、マニフェストで:
<アプリケーション Android:debuggable="true" android:icon="@drawable/icon" android:label="@string/app_name"> <レシーバー android:name="com.boom.UninstallReceiver"> <インテントフィルター> <action android:name="android.intent.action.PACKAGE_REMOVED"/> <data android:scheme="パッケージ" /> </インテントフィルター> </受信者>