将String []保存到要在重新创建活动时使用的包

时间:2011-08-22 16:56:06

标签: android

第一次运行我的活动时,它会下载一些网址字符串并将其设置为。

一个字符串列表......

public   String [] myRemoteImages = {imageUrl,imageUrl2,imageUrl3,imageUrl4};

imageUrl里面有4个url,下载并设置为变量..

当活动被关闭或销毁时,我如何将这些网址保存到他们的变量中,以便在活动被销毁时不会删除它们?

我可以将它保存在一个包中然后onRestoreInstanceState将它们拉出来吗?

2 个答案:

答案 0 :(得分:1)

如果您的活动被销毁,您将无法保存数据,但您可以使用SharedPreferences保存一些数据,如字符串: http://developer.android.com/guide/topics/data/data-storage.html#pref

答案 1 :(得分:1)

如果要在重新创建活动期间保存这些字符串,请使用以下方法。

public String [] myRemoteImages = /* ... */;
private static final String KEY_URLS = "urls";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        myRemoteImages = savedInstanceState.getStringArray(KEY_URLS);
    }
 }

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putStringArray(KEY_URLS, myRemoteImages);
}

如果您希望在用户关闭应用程序时保持这些字符串处于活动状态,则最好使用SharedPreferences

恢复活动时会调用

onRestoreInstanceState()。这意味着此活动在配置更改后或包含此活动的进程被终止并重新启动后重新创建。因此,如果您想在应用关闭之前保存状态,请使用onPause() / onResume()方法进行保存和恢复。