[英]What is the best way to save an array that can be accessed in all activities of an android app?
我正在編寫一個需要能夠保存數據的應用程序,以便下次用戶進入該應用程序時,他們的進度將被保存。 我在想一個數組,其值將隨着用戶做出選擇而更新,這將是實現這一點的最簡單方法。 我的第一個想法是使用讀寫方法制作一個 class 文件,以便所有活動都可以更新和讀取數組中的數據,但我認為當應用程序關閉或我發布更新時該數組不會是永久的。 確保我的保存數組在應用關閉和未來更新之間是永久的最好是什么?
您可以通過多種方式做到這一點。
//To add or update a data
SharedPreferences sharedPref;
sharedPref = getSharedPreferences("AnyNameForSharedPref", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("name", name);
editor.putString("email", email);
editor.putString("phone", phone);
editor.putString("gender", gender);
editor.apply();
//To get the data
final SharedPreferences sharedPref = getSharedPreferences("AnyNameForSharedPref", Context.MODE_PRIVATE);
sharedPref.getString("name", "Default text if it is not present"));
由於 Room 基於 SQLite 數據庫,如果沒有大量數據要存儲,您可以避免使用它。 要使用 ROOM,請添加以下依賴項:
dependencies {
def room_version = "2.2.5"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor
// optional - Kotlin Extensions and Coroutines support for Room
implementation "androidx.room:room-ktx:$room_version"
// optional - RxJava support for Room
implementation "androidx.room:room-rxjava2:$room_version"
// optional - Guava support for Room, including Optional and ListenableFuture
implementation "androidx.room:room-guava:$room_version"
// Test helpers
testImplementation "androidx.room:room-testing:$room_version"
}
這是帶有示例的 ROOM 的官方文檔。 Android機房
你有很多選擇來完成這項工作。 首先,您可以使用 SQLite 數據庫(如果我是你,我會使用它)。 創建擴展SQLiteOpenHelper
的 class 例如:
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
public void onCreate(SQLiteDatabase db) {}
public void onDestroy(SQLiteDatabase database, int oldVersion, int newVersion) {}
}
這是一個如何創建和使用SQLiteDatabase
的示例: https://www.tutorialspoint.com/android/android_sqlite_database.htm
其次,您可以使用SharedPreferences
。 也許,如果除了數組之外沒有其他數據,這是我更簡單的方法。
如果您想在線保存數據,您可以使用 Firebase。 當您希望多個用戶共享數據時,這很有用。 這是一個如何使用 Firebase 的示例: https://blog.mindorks.com/firebase-realtime-database-android-tutorial
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.