수색…


메모리 트리밍에 데이터 저장

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() 를 호출합니다.

그러나 그것이 모든 재산이 사라져야 함을 의미하지는 않습니다. 당신이해야 할 일은 그것들을 번들 객체에 저장하는 것입니다. 번들 객체는 메모리를 현명하게 처리합니다. 번들 안에서 모든 객체는 고유 한 텍스트 시퀀스로 식별됩니다. 위의 예에서 정수 값 변수 mArg 는 참조 이름 EXAMPLE_ARG 아래에 있습니다. 그리고 액티비티가 다시 만들어지면 Bundle 객체에서 이전 값을 처음부터 다시 생성하는 대신 추출하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow