Сохранение данных после удаления приложения

есть ли способ сохранить некоторые из моих данных после удаления приложения и его повторной установки на устройстве. Мне нужно проверить, было ли мое приложение ранее установлено на устройстве или нет.


person k_dev    schedule 03.03.2016    source источник
comment
Отвечает ли это на ваш вопрос? Как сохранить данные, оставшиеся после удаления   -  person Josh Correia    schedule 27.08.2020


Ответы (2)


Да, это возможно, если вы сохраните данные приложения во внешнем хранилище вашего устройства, потому что эти данные не удаляются, даже если ваше приложение удалено.

После переустановки приложения вы можете прочитать данные файла, чтобы определить, было ли приложение ранее установлено или это новая установка, если этот файл не существует.

Примечание. Данные во внешнем каталоге будут видны пользователю, поэтому пользователь может удалить данные из файлового менеджера.

person Mayank Bhatnagar    schedule 03.03.2016
comment
создать скрытую папку или файл. Пользователь не увидит его, если не выберет опцию отображения скрытых папок. Все, что вам нужно сделать, это добавить '.' за именем папки или файла, например .MyAppFile - person Sandeep Bhandari; 03.03.2016
comment
Вот в чем проблема. Я не хочу сохранять файл на внешнем устройстве, потому что не хочу делиться этими данными с пользователем. Это очень личные данные, и, как я уже говорил вам, это очень важно, я также не позволяю пользователю удалять этот файл. - person k_dev; 03.03.2016
comment
Поэтому, возможно, вы можете отправить идентификатор устройства во время запуска вашего приложения. Сервер будет иметь идентификатор устройства для всех устройств, на которых установлено ваше приложение. Проверив это, вы можете загрузить эти данные с сервера и сохранить во внутренней памяти вашего устройства. - person Mayank Bhatnagar; 03.03.2016
comment
я проголосовал за вас, но у меня недостаточно очков репутации, поэтому мой голос не отображается публично :( - person k_dev; 03.03.2016

Вы можете использовать общие настройки для хранения этих данных. Создайте общие ссылки с MODE_WORLD_READABLE. Вы можете установить флаг как true при запуске приложения и можете извлекать это значение при каждой установке, чтобы узнать, существует ли это значение. Что-то вроде ниже:

Когда приложение запускается (напишите этот код в коде запуска вашего приложения, которое запускается первым):

SharedPreferences sharedpreferences = context.getSharedPreferences("test", Context.MODE_WORLD_READABLE);
                SharedPreferences.Editor editor = sharedpreferences.edit();
                editor.putString("app_already_installed", "true");
                editor.commit();

Проверка того, было ли приложение уже установлено (напишите это там, где вы хотите проверить более ранние установки):

SharedPreferences sharedpreferences = context.getSharedPreferences("test", Context.MODE_WORLD_READABLE);
String is_app_already_installed= sharedpreferences.getString("app_already_installed", "false");

if(is_app_already_installed.equals("true"){
//do-something
}
else{
//do-something
}
person Sid    schedule 03.03.2016
comment
Эта константа устарела на уровне API 17. - person Amos; 14.11.2019