0

データオブジェクトの保存に使用されるSDカードにファイルを書き込むアプリがあります。ユーザーがアプリを削除するか、アプリが更新されると、これらのファイルは SD に残り、apk で削除されません。アプリのデータ管理構造を変更すると、厄介な問題が発生する可能性があり、さまざまな理由でこれらの dat ファイルが既に存在するかどうかを確認するだけで修正するのは非常に困難です。

ユーザーが手動で介入せずにアプリがアンインストールまたは更新されたときに、これらのファイルも削除するように Android OS に指示する方法はありますか?

4

2 に答える 2

1

更新の場合は、はい。BroadcastReceiverサブクラスを実装します...

public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(final Context context, final Intent intent) {
        if (intent.getData().equals(Uri.parse("package:<YOUR APP'S PACKAGE>"))) {
            // Clean up for the new app install
        }
    }
}

...次に、マニフェストにタグを追加<receiver>します。

<receiver android:name =".MyBroadcastReceiver">
    <intent-filter>
       <action android:name="android.intent.action.PACKAGE_REPLACED"/>
       <data android:scheme="package"/> 
    </intent-filter>
</receiver>

PACKAGE_REMOVEDアクションもありますが、アプリが削除された後Intentにそのアクションが発生するため、クリーンアップする機会がありません。

于 2012-10-20T01:02:19.180 に答える
1

ユーザーがアプリを削除するか、アプリが更新されると、これらのファイルは SD に残り、apk で削除されません

getExternalFilesDir()次に、それらをまたはに保存する必要がありますgetExternalCacheDir()。これらのディレクトリ内のファイルは外部ストレージに保存されますが、アプリがアンインストールされると自動的に削除されます。

于 2012-10-20T10:55:05.017 に答える