Hilt依赖注入DataStore代码段

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

    //其他代码......

}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注