私の 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="パッケージ" />
</インテントフィルター>
</受信者>