自動更新が発生すると、アプリの設定に保存されている古い日付が削除されます。
この削除を防ぐにはどうすればよいですか?
アプリの自動更新時に、保存された古いデータが削除されないようにしたい。
2 に答える
AndroidはSharedPreferenceを/data/ data / your package name/shared_prefsの下に保存します
通常、更新アプリケーションはsharedPreferenceを削除しません。
private void replaceNonSystemPackageLI(PackageParser.Package deletedPackage,
PackageParser.Package pkg, int parseFlags, int scanMode, UserHandle user,
String installerPackageName, PackageInstalledInfo res) {
...
// First delete the existing package while retaining the data directory
if (!deletePackageLI(pkgName, null, true, PackageManager.DELETE_KEEP_DATA,
res.removedInfo, true)) {
// If the existing package wasn't successfully deleted
res.returnCode = PackageManager.INSTALL_FAILED_REPLACE_COULDNT_DELETE;
deletedPkg = false;
} else {
....
}
....
}
以下を確認する必要があると思います。
お使いのデバイスはルート化されたデバイスですか?ルート権限を取得されたデバイス上のアプリは、必要なものをすべて削除できます。
その更新されたapkで別のパッケージ名を使用しましたか?
これが良い解決策になるかどうかはわかりませんが、試すことができる提案にすぎません。
ステップ 1:データを変更 (追加/編集/削除) して永続的なストレージに保存するときはいつでも、次のいずれかを試すことができます。
a. save the data in file in sd card b. store the data to your remote server or c. store in internal memory of the phone.
(ケース c の更新後に持続するかどうかはわかりません。参考までに、こちらを確認してください。
ステップ 2: IntentBroadcastReceiver
をリッスンする aを作成します。ACTION_PACKAGE_REPLACED
そのため、アプリケーション パッケージがいつ更新されるかがわかります。データを保存したストレージからデータを再度読み込みます (1a/1b/1c のいずれか)。
注意: 彼の心配なしにユーザー データを保存するのは良いことではありません。