DataStore یک کتابخانه از Android Jetpack است که به منظور ذخیره‌سازی داده‌های بسیار ساده و کم‌حجم در Android استفاده می‌شود. این کتابخانه برای جایگزینی SharedPreferences طراحی شده است و از Coroutines پشتیبانی می‌کند.

برای استفاده از DataStore در یک پروژه Kotlin، مراحل زیر را دنبال کنید:

افزودن وابستگی: به فایل build.gradle ماژول شما این خطوط را اضافه کنید:

implementation "androidx.datastore:datastore-preferences:1.0.0"

تعریف Schema: ابتدا یک Schema برای DataStore خود تعریف کنید. این Schema مشخص می‌کند که داده‌های شما چگونه ذخیره و بازیابی می‌شوند.

 برای مثال:

// در فایل MyDataStore.kt
import androidx.datastore.preferences.core.preferencesKey

object MyDataStore {
    val EXAMPLE_COUNTER = preferencesKey<Int>("example_counter")
}

ایجاد DataStore: در فایل Application یا هرجایی که مناسب است، 

یک instance از DataStore ایجاد کنید:

// در فایل MyApplication.kt
import android.app.Application
import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.createDataStore
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.SupervisorJob

class MyApplication : Application() {
    val applicationScope = CoroutineScope(SupervisorJob())

    val dataStore: DataStore<Preferences> by lazy {
        createDataStore(name = "my_data_store", MyDataStore::counter)
    }
}

خواندن از DataStore: برای خواندن اطلاعات از DataStore،

 از dataStore.data استفاده کنید. برای مثال:

// در یک فایل ViewModel یا دیگر کلاس‌ها
import androidx.lifecycle.ViewModel
import androidx.lifecycle.asLiveData
import kotlinx.coroutines.flow.map

class MyViewModel(private val myApplication: MyApplication) : ViewModel() {

    val exampleCounter = myApplication.dataStore.data
        .map { preferences ->
            preferences[MyDataStore.EXAMPLE_COUNTER] ?: 0
        }
        .asLiveData()
}

نوشتن به DataStore: برای نوشتن اطلاعات به DataStore، 

از تابع dataStore.edit استفاده کنید:

// در یک کلاس یا ViewModel
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch

class MyViewModel(private val myApplication: MyApplication) : ViewModel() {

    fun incrementCounter() {
        viewModelScope.launch {
            val currentCounter = myApplication.dataStore.data.first()[MyDataStore.EXAMPLE_COUNTER] ?: 0
            myApplication.dataStore.edit { preferences ->
                preferences[MyDataStore.EXAMPLE_COUNTER] = currentCounter + 1
            }
        }
    }
}

در اینجا، ما از dataStore.edit برای شروع یک عملیات ویرایش استفاده کردیم. مقادیر جدید را از DataStore خوانده، و مقدار EXAMPLE_COUNTER را افزایش دادیم.

مقالات مرتبط

نرم افزار مدیریت باسکول ( هوشمند )
نرم افزار مدیریت باسکول ( هوشمند )

سیستم مدیریت باسکول بارگو – هوشمندسازی توزین در کارخانه‌ها و معادن پشتیبانی از حالت آفلاین و آنلاین حتی در شرایط قطع اینترنت، سیستم بدون وقفه به کار خود ادامه داده و پس از برقراری ارتباط، اطلاعات را به‌طور کامل با سرور آنلاین همگام‌سازی می‌کند. قابلیت اتصال به انواع باسکول‌ها سازگاری کامل با باسکول‌های دیجیتال و آنالوگ، بدون نیاز به تغییرات سخت‌افزاری. تعاریف و تنظیمات پیشرفته امکان تعریف کالاها، مشتریان، رانندگان، وسایل نقلیه و اپراتورها با دسترسی‌های متفاوت. گزارش‌گیری دقیق و متنوع گزارشات وزنی روزانه، هفتگی و ماهانه گزارشات مالی و حسابداری گزارشات سفارشی بر اساس بازه زمانی و نوع کالا رابط کاربری ساده و کاربرپسند طراحی به گونه‌ای که اپراتور باسکول بتواند در کمترین زمان عملیات توزین را انجام دهد. هوش مصنوعی و پلاک‌خوان خودکار شناسایی لحظه‌ای پلاک خودرو هنگام ورود به باسکول ذخیره تصویر خودرو و پلاک در سیستم کاهش خطا و جلوگیری از ورود اطلاعات نادرست

3 ماه قبل نوشته شده

دیدگاهی برای این مطلب ثبت نشده است.