Android 具有持久化 Activity(或 Fragment)状态的工具。
如果您的 Activity 被置于后台,它可能会在某个时候被销毁并且您无法控制它。这就是 Android 使用 Bundles 的原因。将您的数据存储在捆绑包中,然后将其读回
onCreate(Bundle savedInstanceState)
因此,在您的活动因任何原因终止之前,请存储重要值:
protected void onSaveInstanceState(Bundle bundle) {
bundle.putInt(SOME_IMPORTANT_INT,mMyInt);
bundle.putString(SOME_IMPORTANT_STRING,mMyString);
}
创建活动时,我们必须读取包中的内容(如果有的话):
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState != null) {
mMyInt = savedInstanceState.getInt(SOME_IMPORTANT_INT);
mMyString = savedInstanceState.getString(SOME_IMPORTANT_STRING);
}
}
简而言之,您的活动 mMyInt 和 mMyString 值将恢复。
我们可能对何时重新启动活动有一点控制。这是由 AndroidManifest 文件中的 android:configChanges 属性完成的:
<activity
android:name=".ui.login.LoginActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
http://developer.android.com/guide/topics/resources/runtime-changes.html