2016-05-13 5 views
5

काम नहीं करता है जब स्क्रीन घूमती है ... टोस्ट प्रिंट कुछ भी नहीं!ऑनसेवस्टेंसस्टेट

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    String a = savedInstanceState.getString("hello"); 
    Toast.makeText(MainActivity.this, a, Toast.LENGTH_SHORT).show(); 

} 

@Override 
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { 
    super.onSaveInstanceState(outState, outPersistentState); 
    String a = "WTF"; 
    outState.putString("hello",a); 
} 

}

मैं अच्छी तरह से सब कुछ घोषित ,, जहां इस सरल कोड में बहुत बेकार है!?

उत्तर

10

मुझे लगता है कि आप वास्तव में एक आम जाल में गिर गए हैं, क्योंकि कई एंड्रॉइड ओएस टीम ने onSaveInstanceState() विधि को अधिभारित किया है।

आप गलत विधि ओवरराइड कर रहे हैं। आप जो चाहते है है:

@Override 
public void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    String a = "WTF"; 
    outState.putString("hello",a); 
} 

व्यक्तिगत रूप से, मुझे लगता है कि क्रेग Mautner पैसा हर बार एक Android डेवलपर इस गलती करता है दान करने के लिए मजबूर किया जाना चाहिए - source