Android如何在应用关闭时保存数据阵列

时间:2014-07-01 04:15:13

标签: android download alarmmanager

我正在开发一个允许用户进行预定下载的应用程序(用户可以选择多个链接,然后在特定的给定时间(可能需要几周),AlarmManager将发送广播来调用DownloadService

那么即使关闭应用程序,如何保存用户的选定链接?我认为这些链接只需要是一个ArrayList。

我尝试过SharedPreferences,但它只允许我使用putInt,putBoolean ... 我还阅读了关于onSaveInstanceState / onRestoreInstanceState但是当应用程序关闭时,saveInstanceState也消失了,对吗?

我该怎么做?非常感谢你

1 个答案:

答案 0 :(得分:1)

如果您有ArrayList<String> urlsList;

保存网址:

Editor edit = prefs.edit();
edit.putInt("list_size", urlsList.size());
for(int i=0;i<urlsList.size(); i++)
    edit.putString("url_" + i, urlsList.get(i));
edit.commit();

检索网址:

int size = prefs.getInt("list_size", 0);
ArrayList<String> retrievedUrls = new ArrayList<String();
for(int i=0; i<size; i++)
    retrievedUrls.add(prefs.getString("url_" + i, null));