এটি কেন হতে পারে না অনারস্টার্ট () এবং অনক্রিট () পদ্ধতির পরে অন স্টার্ট () বাদ দিয়ে কেন? এর উদ্দেশ্য কী?
ঠিক আছে, যেহেতু আমার প্রথম উত্তরটি বেশ দীর্ঘ ছিল তাই আমি এটিকে আরও বাড়িয়ে দেব না তাই আসুন এটি চেষ্টা করি ...
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()যখন আমি কোনও অস্থায়ী স্টপে আসি is তাই আমি গাড়ি চালিয়ে তারপর একটি লাল আলোতে পৌঁছান যাতে আমি বিরতি দেয় ... আলো সবুজ হয়ে যায় এবং আমি আবার শুরু করি। আর একটি লাল আলো এবং আমি বিরাম দিন, তারপর সবুজ তাই আমি আবার শুরু করি। onPause() -> onResume() -> onPause() -> onResume()লুপ একটা সংকুচিত এক এবং আমার যাত্রা মাধ্যমে অনেক বার ঘটে।
পুনরায় আরম্ভ (আমার যাত্রা চালিয়ে যাওয়ার প্রস্তুতি) দিয়ে আবার শুরু করার পথে লুপটি থামানো সম্ভবত কম সাধারণ। একটি ক্ষেত্রে, আমি মুদি দোকানটি স্পট করি এবং এটি GroceryStoreActivityশুরু হয় (আমার DriveToWorkActivityকাছে জোর করে onStop())। আমি যখন দোকান থেকে ফিরে আসি, তখন আমি দিয়ে যাই onRestart()এবং onStart()তারপরে আমার যাত্রা আবার শুরু করি।
আমি onStart()উভয় মধ্যে থাকা কোডটি রাখতে পারি এবং এটিকে ওভাররাইড করার জন্য মোটেই বিরক্ত করি না onCreate()এবং এর মধ্যে আরও বেশি করার দরকার হয় এবং আমি আরও বেশি জিনিসগুলিকে নকল করি।onRestart()onStart()onCreate() -> onResume()onRestart() -> onResume()
সুতরাং, আরও একবার জবাবদিহি করতে ...
এটি কেন হতে পারে না অনারস্টার্ট () এবং অনক্রিট () পদ্ধতির পরে অন স্টার্ট () বাদ দিয়ে কেন?
আপনি যদি ওভাররাইড না করেন onStart()তবে কার্যকরভাবে এটি হয়। যদিও onStart()পদ্ধতির Activityপরোক্ষভাবে বলা হবে আপনার কোড কার্যকর কার্যকরভাবে হয় onCreate() -> onResume()বা onRestart() -> onResume()।