我正在開發一個應用程序,它將在幾個階段發送電子郵件,但我必須檢查互聯網連接。如果用戶有互聯網連接,那麼我只是發送電子郵件,但如果用戶沒有互聯網,那麼當用戶重新獲得互聯網連接時,我必須保存電子郵件請求併發送電子郵件。在Android中保存ArrayList <Object>
我構建了一個ArrayList,並在用戶沒有連接時向該列表添加電子郵件請求。我怎樣才能永久保存ArrayList的應用程序?我必須永久存儲該列表,因爲即使在用戶關閉並重新打開該應用程序後,我仍然需要該列表。
我正在開發一個應用程序,它將在幾個階段發送電子郵件,但我必須檢查互聯網連接。如果用戶有互聯網連接,那麼我只是發送電子郵件,但如果用戶沒有互聯網,那麼當用戶重新獲得互聯網連接時,我必須保存電子郵件請求併發送電子郵件。在Android中保存ArrayList <Object>
我構建了一個ArrayList,並在用戶沒有連接時向該列表添加電子郵件請求。我怎樣才能永久保存ArrayList的應用程序?我必須永久存儲該列表,因爲即使在用戶關閉並重新打開該應用程序後,我仍然需要該列表。
最簡單的答案是你需要某種類型的SQL數據庫來保存數據,儘管沒有列出你的代碼,你將不會得到具體的答案。
學習在應用程序中使用SQL Lite,然後再通過Internet連接連接到數據庫。
這所大學在幫助我:頭部到http://www.edumobile.org/android/android-development/mini-notepad/。
我猜數據庫將是一個矯枉過正,你可以簡單地寫郵件地址的文件或將其保存在SharedPreferences
你可以看到不同的存儲位置:http://developer.android.com/guide/topics/data/data-storage.html
首先列表轉換成JSON字符串,你可以使用gson,jackson或其他json轉換器。通過調用JSONCache.init並通過上下文
public class JSONCache {
private static Context context = null;
public static void init(Context context) {
if (JSONCache.context == null) {
JSONCache.context = context;
}
}
public static String loadData(String prefName, String key) {
SharedPreferences prefs = context.getApplicationContext().getSharedPreferences(prefName, Context.MODE_PRIVATE);
return prefs.getString(key, null);
}
public static void saveData(String prefName, String key, String json) {
SharedPreferences prefs = context.getApplicationContext().getSharedPreferences(prefName, Context.MODE_PRIVATE);
SharedPreferences.Editor ed = prefs.edit();
ed.putString(key, json);
ed.commit();
}
public static void deleteAllData(String prefName) {
SharedPreferences prefs = context.getApplicationContext().getSharedPreferences(prefName, Context.MODE_PRIVATE);
SharedPreferences.Editor ed = prefs.edit();
ed.clear();
ed.commit();
}
public static void deleteDataByKey(String prefName, String key) {
SharedPreferences prefs = context.getApplicationContext().getSharedPreferences(prefName, Context.MODE_PRIVATE);
SharedPreferences.Editor ed = prefs.edit();
ed.remove(key);
ed.commit();
}
public static boolean dataExists(String prefName, String key) {
SharedPreferences prefs = context.getApplicationContext().getSharedPreferences(prefName, Context.MODE_PRIVATE);
return prefs.getAll().containsKey(key);
}
}
初始化緩存(這通常是你在活動)
現在,只要您需要:
下面的類添加到項目保存只要致電:
JSONCache.saveData("myPreference", keyForSave, jsonStringToSave);
從緩存中提取
String json=JSONCache.loadData(myPreference, jsonStringToSave)
然後你可以使用之前相同的json轉換器將你的json字符串轉換回列表。
你可以找到的官方指南[這裏](http://developer.android.com/guide/topics/data/data-storage.html)。 –