保存内存修整数据

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