儲存記憶體修整資料

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 物件中提取舊值,而不是從頭開始重新建立它們