DataStore 代码段
import android.content.Context
import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.stringPreferencesKey
import androidx.datastore.preferences.preferencesDataStore
import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject
class DataStoreManager @Inject constructor(@ApplicationContext private val context: Context) {
val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "settings")
private val nameKey = stringPreferencesKey("name")
private val emailKey = stringPreferencesKey("email")
suspend fun saveName(userModel: UserModel) {
context.dataStore.edit { preferences ->
preferences[nameKey] = userModel.name
preferences[emailKey] = userModel.email
}
}
}
Activity中使用
@AndroidEntryPoint
class MainActivity : ComponentActivity() {
@Inject
lateinit var dataStoreManager: DataStoreManager
//其他代码......
}