2013-11-30 2 views

ответ

11

эй дружище я нашел ответ здесь способ предотвратить данные очищаются от общей Preference

Добавить android:manageSpaceActivity=".ActivityOfMyChoice" в application теге манифеста, как:

<application android:label="MyApp" android:icon="@drawable/icon" 
       android:manageSpaceActivity=".ActivityOfMyChoice"> 

Тогда вместо "Clear Data", там это кнопка для "Manage Space", которая запускает ActivityOfMyChoice

это будет называть мою деятельность, и деятельность завершается при создании :)

public class ActivityOfMyChoice extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     finish(); 

    } 
} 

Теперь вы можете нажать «Управление пространством» столько, сколько хотите! :)

Этот метод работает в 100% случаев.

+1

Вы Сэр, заслужить медаль. Чистое обходное решение, когда все говорят «вы не можете этого сделать».Respect – user3041058

+0

Хотя это технически работает, это плохая практика. – slayton

+0

@slayton вы правы, но нет другого пути, так что нам нужно сделать этот путь :) – Hardik

3

Я нашел this similar question:

Общие настройки и файлы не сохраняются на SD-карте будут удалены , когда приложение будет удалено.

Файлы, сохраненные на SD-карте, сохраняются после удаления, однако у пользователя будет доступ к чтению, перезаписи и удалению этих файлов по адресу .

Если вам нужно по-настоящему постоянное хранилище, лучшим способом будет хранить данные удаленно на сервере, которым вы управляете.

Если вам не нужны данные, вы можете сохранить их на SD-карте.

EDIT

Я думаю, что BFil ответ очень хорош на this post, проверить его. (! Для моего чистого и безумного любопытства)

Моего окончательного вердикта

После долгих исследований, нет никакого способа, чтобы сохранить SharedPreference после ясно настройки (на данный момент): единственный путь серверное хранилище или Data Backup.

+0

Я нашел способ предотвратить удаление данных из общих предпочтений ... См. Мой ответ: :))) – Hardik

0

Добавить этот тег в манифест allowClearUserData = false. этот код проверен.

+0

выше кода не влияет, попробуйте сами – Hardik

Смежные вопросы