Воссоздают катастрофический отказ.
Попытка воссоздать проблему как или когда это произошло.
, Если у Вас ранее было рабочее решение, сравните то, что Вы имели, к какому Вы имеете теперь.
ТОЧКИ ОСТАНОВА ИСПОЛЬЗОВАНИЯ!!! : https://developer.android.com/studio/debug. Ступите через свой проект, попытайтесь видеть то, что значения переменных и почему он мог потенциально отказывать.
Делают Ваш код читаемым и понятным кому-либо еще. прочитывает Ваш собственный код снова и пытаются видеть, имеет ли он смысл Вам, объясните это себе. Если существует что-то в Вашем коде, Вы не понимаете, или Вы не уверены в этом, смотрите на него снова, пытаетесь писать это более ясный:
(, необходимо понять код, и необходимо быть в состоянии объяснить, что Вы пытаетесь сделать)
, И наконец попытайтесь исследовать, и узнать больше о конкретный часть Вашего кода Вы не понимаете, или Вы не уверены в.
Если вы используете Sql Server, есть еще один вариант, который следует рассмотреть:
Используйте класс SqlCacheDependency , чтобы сделать ваш кеш недействительным при обновлении базовых данных. Очевидно, это дает результат, аналогичный варианту 2.
Мне, возможно, действительно придется согласиться с Agileguy - описания ваших запросов кажутся довольно упрощенными. Думать наперед и учитывать кеширование при разработке - это хорошая идея, но доказали ли вы, что на самом деле вам это нужно сейчас ? Вариант 3 кажется намного лучше, чем вариант 1, если предположить, что вы на самом деле не имеете сейчас серьезных проблем с производительностью.
Преждевременная оптимизация - это корень всех зол;)
Тем не менее, если вы собираетесь использовать кэш, я бы использовал решение, основанное на варианте 2.
У вас меньше возможностей для "грязных" данных таким образом.
Kindness,
Dan
Второй вариант - лучший. Не должно быть так сложно, если одно и то же приложение редактирует / кэширует данные. Может быть сложнее, если существует более одного приложения.
Если вы не можете пойти этим путем, 1-й тоже может быть приемлемым. С некоторыми настройками (то есть - я бы попытался обновить кеш в другом потоке, когда он достигнет тайм-аута), он может работать достаточно хорошо (если данные могут быть немного устаревшими).
Никогда не отключайте кеширование, если это возможно. Всем известен стих «преждевременная оптимизация ...», но кеширование - одна из тех вещей, которые могут значительно повысить масштабируемость / производительность приложения.