保存内存修整数据
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 对象中提取旧值,而不是从头开始重新创建它们