Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
432 of 502 menu
◀ ▶

Метод apply

Метод apply у SharedPreferences.Editor запускает запись xml-файла prefs в фоновом потоке и сразу возвращает управление. Ошибку записи он не сообщает вызывающему коду, в отличие от commit. Для UI чаще выбирают apply.

Синтаксис

editor.putString("abcde", "12345").apply()

Пример

Давайте сохраним строку через apply:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val prefs = getSharedPreferences("prefs", MODE_PRIVATE) prefs.edit() .putString("abcde", "12345") .apply() val res = prefs.getString("abcde", "") setContent { Text(text = res ?: "abcde") } } }

После apply в prefs появится "12345", на экране Text покажет эту строку.

Пример

Давайте применим несколько изменений одним apply:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val prefs = getSharedPreferences("prefs", MODE_PRIVATE) prefs.edit() .putString("abcde", "12345") .putInt("12345", 12345) .apply() val res = prefs.getString("abcde", "") setContent { Text(text = res ?: "abcde") } } }

Обе пары запишутся в prefs одним асинхронным сохранением.

Смотрите также

  • метод commit,
    который сохраняет синхронно
  • метод putString,
    перед apply которого кладут данные
  • метод edit,
    которым открывают editor
  • метод edit,
    которым пишут в DataStore, а не в xml
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить