मैंस्टोर इंस्टेंसस्टेट विधि पर परीक्षण करने की कोशिश कर रहा हूं और जब (बिल्कुल) इसे कहा जाता है। तो मैंने इन चरणों का पालन किया है:ऑनस्टार्ट के बाद रेस्टोर इंस्टेंसस्टेट पर क्यों नहीं है?
- मेरी गतिविधि शुरू करें।
onCreate -- > onStart --> onResume
बुलाए गए थे। - एमुलेटर पर होम बटन दबाएं।
onPause --> onSaveInstanceState --> onStop
बुलाए गए थे। - लॉन्चर में आइकन पर क्लिक करें और मेरी गतिविधि को दोबारा लॉन्च करें।
onRestart --> onStart --> onResume
बुलाए गए थे।
मेरे जावा कोड:
package com.test.demostate.app;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
public class MainActivity extends ActionBarActivity {
private int visiters=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("TAG","onCreate");
}
@Override
protected void onPause() {
super.onPause();
Log.d("TAG","onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d("TAG","onStop");
}
@Override
protected void onStart() {
super.onStart();
Log.d("TAG","onStart");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("TAG","onRestart");
}
@Override
protected void onResume() {
super.onResume();
visiters++;
Log.d("TAG","onResume");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("visiters",visiters);
Log.d("TAG",visiters+" visiters was saved ");
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
visiters=savedInstanceState.getInt("visiters");
Log.d("TAG",visiters+" visiters was restored");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("TAG","onDestroy");
}
}
डॉक्स से: Instead of restoring the state during onCreate() you may choose to implement onRestoreInstanceState(), which the system calls after the onStart() method .
तो onRestoreInstanceState
- कहा जाता है के बाद गतिविधि के लिए
onPause --> onStop --> onDestroy
तोonCreate --> onRestoreInstanceState --> onResume
(स्क्रीन रोटेशन के कारण नष्ट हो गया था उदाहरण) - गतिविधि के बाद
onPause --> onStop --> onRestart --> onStart --> onRestoreInstanceState --> onResume
(घर उदाहरण के लिए दबाने आइकन के कारण) बंद कर दिया गया था लेकिन क्यों यह onStart के बाद कहा जाता है नहीं है?
धन्यवाद
".. जिस पर सिस्टम ऑनस्टार्ट() विधि के बाद * कॉल करता है।" - समस्या के लिए प्रासंगिक शीर्षक लिखें। – user2864740
@ user2864740, मेरे प्रश्न का शीर्षक संपादित किया गया था "क्यों नहीं है ..." –
चरण दो के बाद, फिर से होम बटन दबाएं और अपने ऐप में खोले क्लिक करें। अपने ऐप को स्मार्टफोन पर भी निष्पादित करने का प्रयास करें। –