ऐसा क्यों नहीं हो सकता है onResume () onRestart () और onCreate () के तरीकों को लागू करने के बाद सिर्फ onStart () को छोड़कर है? इसका उद्देश्य क्या है?
ठीक है, जैसा कि मेरा पहला उत्तर बहुत लंबा था, मैं इसे आगे नहीं बढ़ाऊंगा, तो चलिए यह कोशिश करते हैं ...
public DriveToWorkActivity extends Activity
implements onReachedGroceryStoreListener {
}
public GroceryStoreActivity extends Activity {}
कृपया ध्यान दें: मैंने जानबूझकर कॉल super.onCreate(...)आदि चीजों को छोड़ दिया है । यह छद्म कोड है इसलिए मुझे यहां कुछ कलात्मक लाइसेंस दें। ;)
DriveToWorkActivityअनुसरण करने के तरीके ...
protected void onCreate(...) {
openGarageDoor();
unlockCarAndGetIn();
closeCarDoorAndPutOnSeatBelt();
putKeyInIgnition();
}
protected void onStart() {
startEngine();
changeRadioStation();
switchOnLightsIfNeeded();
switchOnWipersIfNeeded();
}
protected void onResume() {
applyFootbrake();
releaseHandbrake();
putCarInGear();
drive();
}
protected void onPause() {
putCarInNeutral();
applyHandbrake();
}
protected void onStop() {
switchEveryThingOff();
turnOffEngine();
removeSeatBeltAndGetOutOfCar();
lockCar();
}
protected void onDestroy() {
enterOfficeBuilding();
}
protected void onReachedGroceryStore(...) {
Intent i = new Intent(ACTION_GET_GROCERIES, ..., this, GroceryStoreActivity.class);
}
protected void onRestart() {
unlockCarAndGetIn();
closeDoorAndPutOnSeatBelt();
putKeyInIgnition();
}
ठीक है, इसलिए यह एक और लंबा है (क्षमा करें दोस्तों)। लेकिन यहाँ मेरा स्पष्टीकरण है ...
onResume()जब मैं गाड़ी चलाना शुरू करता हूं और onPause()जब मैं अस्थायी ठहराव पर आता हूं। तो मैं ड्राइव करता हूं फिर एक लाल बत्ती तक पहुंचता हूं इसलिए मैं रुकता हूं ... रोशनी हरी हो जाती है और मैं फिर से शुरू हो जाता है। एक और लाल बत्ती और मैं विराम, फिर हरा तो मैं फिर से शुरू। onPause() -> onResume() -> onPause() -> onResume()पाश एक तंग एक है और अपनी यात्रा के माध्यम से कई बार होता है।
लूप को पुनः आरंभ (मेरी यात्रा पर ले जाने की तैयारी) के माध्यम से फिर से शुरू करने से रोकना शायद कम आम है। एक मामले में, मैं किराने की दुकान को देखता हूं और GroceryStoreActivityशुरू किया जाता है (मेरी DriveToWorkActivityबात पर मजबूर होना onStop())। जब मैं स्टोर से लौटता हूं, तो मैं गुजरता हूं onRestart()और onStart()फिर अपनी यात्रा फिर से शुरू करता हूं।
मैं उस कोड को डाल सकता हूं जो onStart()दोनों में है onCreate()और सभी onRestart()को ओवरराइड करने के लिए परेशान नहीं onStart()करता है, लेकिन जितना अधिक इसके बीच onCreate() -> onResume()और onRestart() -> onResume(), जितना अधिक मैं चीजों को दोहरा रहा हूं उतना ही करने की आवश्यकता है ।
तो, एक बार और आवश्यकता के लिए ...
ऐसा क्यों नहीं हो सकता है onResume () onRestart () और onCreate () के तरीकों को लागू करने के बाद सिर्फ onStart () को छोड़कर है?
यदि आप ओवरराइड नहीं करते हैं onStart()तो यह प्रभावी रूप से होता है। हालाँकि, onStart()विधि को Activityसंक्षेप में कहा जाएगा, आपके कोड में प्रभाव प्रभावी रूप से है onCreate() -> onResume()या onRestart() -> onResume()।