Является ли хорошей идеей создавать новый объект SharedPreferences каждый день, когда приложение используется? - PullRequest
0 голосов
/ 06 января 2019

Я читал другие темы, и в нем говорится, что несколько общих настроек - это хорошо ( Android - плохая практика иметь несколько общих настроек? ) Однако не следует хранить много данных, используя префы. Однако что подразумевается под «большим количеством данных»? Каждый новый день, когда приложение запускается, оно создает новую пару ключ-значение с текущей датой в качестве ключа ... Это хорошая идея или я должен перейти на SQLite?

class TimeAndMoneyForASpecificDay (val context: Context) {

    private fun obtainDate(): String{ 
        val df = SimpleDateFormat("MMM d, yyyy")
        return df.format(Date())
    }

    fun saveTimeWorkedAndMoneyEarned(timeWorked: Float, moneyEarned: Float) {

        val current = obtainDate() 

        val time = context.getSharedPreferences("time", 0) // ??
        val money = context.getSharedPreferences("money",0)

        val timeEditor = time.edit()
        val moneyEditor = money.edit()


        timeEditor.putFloat(current, timeWorked) 
        moneyEditor.putFloat(current, moneyEarned)

        timeEditor.apply()
        moneyEditor.apply()


    }
}

1 Ответ

0 голосов
/ 20 января 2019

Как заметил @Tigger, это выбор дизайна, но если вы думаете, что пользователь может использовать ваше приложение через пару лет, неплохо было бы удалить старую информацию, потому что большое количество ключей в общих настройках замедляет чтение / update и если вы решили использовать общие настройки, убедитесь, что вы удалили некоторые старые ключи. Общие настройки - это простые файлы XM, поэтому само собой разумеется, что большое количество ключей делает их медленными. Вы также можете проверить мой репо, который поддерживает срок действия и аргументы для ключа (например, ваша дата) EasyPrefs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...