2017-01-14 2 views
3

У меня есть наборы данных 2Каков самый быстрый способ сохранить набор строк в SharedPreferences?

String[] wordsArray; 
Queue<String> wordsQueue; 

Они хранят одни и те же данные, около 500 строк каждая, 1-3 слов в строке. Мне нужно сохранить один из них до SharedPreference. Каков наилучший (самый быстрый) способ сделать это?

Теперь я просто использовать

Set<String> mySet = new HashSet<String>(wordsQueue); 
edit.putStringSet("Words", mySet); 

Но он работает медленнее, чем я хочу.

+0

попробуйте сделать громоздкие работы в фоновом режиме. –

+0

Я новичок в java и до сих пор не знаком с потоками. Во всяком случае, я постараюсь сделать это таким образом благодаря советам. – Gaijin

ответ

3

Используйте apply() вместо commit(), который сохранит предпочтение в фоновом потоке (то есть асинхронном).

Set<String> mySet = new HashSet<String>(wordsQueue); 
edit.putStringSet("Words", mySet).apply(); 

Для сохранения массива String в SharedPreference вы могли бы рассмотреть возможность сделать что-то подобное сказал in this answer.

+0

Спасибо! Наверное, мне просто нужно более внимательно читать официальные документы, ха-ха. – Gaijin

+0

Но есть ли способ сделать то же самое без копирования исходного списка в HashSet? – Gaijin

+0

См. Обновленный ответ. –

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