खोज…


मेमोरी ट्रिमिंग पर डेटा की बचत

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);
    }
}

व्याख्या

तो, यहाँ क्या हो रहा है?

एंड्रॉइड सिस्टम हमेशा उतना ही मेमोरी खाली करने का प्रयास करेगा जितना वह कर सकता है। इसलिए, यदि आपकी गतिविधि पृष्ठभूमि के नीचे है, और एक अन्य अग्रभूमि गतिविधि अपने हिस्से की मांग कर रही है, तो एंड्रॉइड सिस्टम आपकी गतिविधि पर onTrimMemory() को कॉल करेगा।

लेकिन इसका मतलब यह नहीं है कि आपके सभी गुण गायब हो जाना चाहिए। आपको क्या करना चाहिए उन्हें एक बंडल ऑब्जेक्ट में सहेजना है। बंडल ऑब्जेक्ट बहुत बेहतर मेमोरी वार हैं। एक बंडल के अंदर प्रत्येक वस्तु को अद्वितीय पाठ अनुक्रम द्वारा पहचाना जाता है - उदाहरण में पूर्णांक मान चर mArg संदर्भ नाम EXAMPLE_ARG अंतर्गत है। और जब गतिविधि को फिर से बनाया जाता है तो बंडल से अपने पुराने मानों को स्क्रैच से फिर से बनाने के बजाय उन्हें हटा दें



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow