2012-02-05 5 views
3

Я разрабатываю приложение для Android, которое в основном загружает список новостных статей и открывает их в веб-виде при нажатии на пользователя.Хранилище данных приложений Android продолжает расти

Что мне интересно, когда я просматриваю детали своего приложения в разделе «Настройки-> Приложения-> Управление приложениями», размер хранилища Total увеличивается. В частности, размер хранилища данных увеличивается. Размер приложения, конечно, исправлен.

Из того, что я знаю, sharedpreferences занимают хранение данных. Я не знаю, что еще. В моем приложении у меня есть только 1 флажок, а listpreference - 4 элемента.

Я также внедрил метод onSaveInstanceState(), где я просто сохраняю одно значение int и читаю снова во время onCreate().

Является ли увеличение объема хранения данных нормальным или я что-то не хватает? Может быть, должна быть какая-то очистка памяти, которую я должен делать в своем коде?

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

+0

Увеличивает ли он линейную скорость? или он увеличивается спорадически? Т.е. если вы перейдете на сайт и нажмите обновление, это увеличится? если вы добрались до 100 веб-сайтов, это увеличится на 100, или это колеблется. Попытайтесь выяснить, есть ли у вас что-то протекающее или если его хромовое кеширование. Кэширование должно быть спорадическим и может быть проверено. утечки должны быть немного более постоянными. – ntkachov

+0

Я играю с ним, чтобы посмотреть, как меняется размер базы данных на то, что я делаю. На данный момент я вижу, что он увеличивается, когда я загружаю страницу в веб-просмотр. Но не все время. У меня нет опции обновления на моем веб-просмотре, поэтому я не могу попробовать. Разве кеш не должен идти в размере кеша (который сейчас довольно большой), а не в размере данных? –

+0

Вот пример изменения размера. Я в основном загружаю одну и ту же страницу (маленький простой сайт статьи) для первых 5 данных. Последний, я открыл другую статью (намного больший/сложный сайт), и изменение данных намного больше. Данные \t Кэш 520KB \t 5.53MB; 536 КБ \t 5,58 МБ; 540KB \t 5.60MB; 548KB \t 5.62MB; 552KB \t 5.64MB; 568KB \t 6.16MB; –

ответ

2

Я знаю, что это более 2 лет, но это может быть полезно для кого-то еще. Я обнаружил, что проблема заключается в WebView, а не в SharedPreferences у меня была такая же проблема и решена путем переопределения метода onPause() таким образом:

private WebView wv; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    wv = new WebView(this); 
    setContentView(wv); 
    wv.loadUrl("http://www.stackoverflow.com"); 
} 

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    wv.clearCache(true); 
} 

Метод clearCache принимает логическое значение, которое позволяет указать, следует ли вы хотите включить файлы дисков, которые хранятся в WebView. Если вы включите его, ваше использование данных значительно уменьшится. Надеюсь, поможет!

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