2011-02-05 15 views
7

onSaveInstanceState(Bundle ..) and onRestoreInstanceState(Bundle ..)
वास्तव में अच्छा और काम था, लेकिन यह एमुलेटर पर बंद करें बटन पर क्लिक करते समय काम कर रहा है।
अब, मैं जब नीचे दिए गए बटन का इस्तेमाल किया राज्य को बचाने और सहेजे गए डेटा को पुनर्स्थापित करना चाहते हैं:
EmulatorAndroid पर एंड्रॉइड के साथ कैसे उपयोग करें?

मुझे लगता है कि यह OnPause() या oOnStop() का उपयोग करना संभव है, अगर मैं सही हूँ, इसका उपयोग कैसे करें ,
यह मुझे एक बूलियन वैरिएबल को सहेजने के जावा स्रोत को दिखाने के लिए पर्याप्त होगा, और इसे पुनर्स्थापित करें,
धन्यवाद।

उत्तर

13

मैं onPause() का उपयोग करूंगा, क्योंकि onStop() को कॉल करने की गारंटी नहीं है। जीवन चक्र के विवरण के लिए application fundamentals देखें।

बूलियन को सहेजने और पुनर्स्थापित करने के लिए, मैं SharedPreferences का उपयोग करूंगा। data storage page पर एक कोड उदाहरण है जो दिखाता है कि बुलियन को कैसे सहेजना और पुनर्स्थापित करना है। वे onCreate() और onStop() का उपयोग करते हैं, लेकिन मैं पहले से ही उल्लेख किए गए कारणों से onResume() और onPause() का उपयोग करूंगा।

2

देखें चरण 7 और एक उदाहरण के एक SQLite DB करने के लिए राज्य को बचाने के लिए the Android SDK notepad tutorial part 3. में चरण 8 (क पहले से परिभाषित db-हेल्पर वर्ग का उपयोग कर।)

0
के अलावा कोई अन्य विकल्प नहीं है

आप अपनी गतिविधि में केवल पॉज़() को ओवरराइड कर सकते हैं सक्रियता ए जब आप किसी अन्य गतिविधि में नेविगेट कर रहे हैं तो गतिविधि बी कहें और जब आप गतिविधि पर वापस आते हैं तो रेस्यूम() पर ओवरराइड करें।

5

उदाहरण:

public class Calc extends Activity { 
public static final String PREFS_NAME = "MyPrefsFile"; 

@Override 
protected void onCreate(Bundle state){ 
    super.onCreate(state); 
    . . . 

    // Restore preferences 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    boolean silent = settings.getBoolean("silentMode", false); 
    setSilent(silent); 
} 

@Override 
protected void onStop(){ 
    super.onStop(); 

    // We need an Editor object to make preference changes. 
    // All objects are from android.context.Context 
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putBoolean("silentMode", mSilentMode); 

    // Commit the edits! 
    editor.commit(); 
} 

}

12

मैं poweroff के बाद sharedPreferences पढ़ने समस्या नहीं थी, जब वे का उपयोग कर संग्रहीत किया गया। कामकाज पहले clear() पर कॉल करना था।

public static final String PREFS_NAME = "MyPrefsFile"; 

    protected void onPause(){ 
     super.onPause(); 

     SharedPreferences settings = getSharedPreferences(PREFS_NAME,0); 
     SharedPreferences.Editor editor = settings.edit(); 
     // Necessary to clear first if we save preferences onPause. 
     editor.clear(); 
     editor.putInt("Metric", mMetric); 
     editor.commit(); 
    } 
संबंधित मुद्दे