public class ExampleActivity extends Activity {
private final static String EXAMPLE_ARG = "example_arg";
private int mArg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_example);
if(savedInstanceState != null) {
mArg = savedInstanceState.getInt(EXAMPLE_ARG);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(EXAMPLE_ARG, mArg);
}
}说明
那么,这里发生了什么?
Android系统将始终努力清除尽可能多的内存。因此,如果您的活动降到了后台,而另一个前台活动要求分享,那么Android系统会调用onTrimMemory()您的活动。
但这并不意味着您所有的财产都应消失。您应该做的就是将它们保存到Bundle对象中。捆绑对象在内存方面要好得多。在包中,每个对象都由唯一的文本序列标识-在上面的示例中,整数值变量mArg以引用名称保存EXAMPLE_ARG。并且当重新创建活动时,请从Bundle对象中提取旧值,而不是从头开始创建它们。