বিভিন্ন উত্তর এবং নোট দাবি করছে যে সমাপ্তি () অনপস () এবং অনসটপ () এড়িয়ে যেতে পারে এবং অনডস্ট্রয় () সরাসরি চালায়। সত্য কথা বলতে গেলে, এ সম্পর্কে অ্যান্ড্রয়েড ডকুমেন্টেশন ( http://developer.android.com/references/android/app/Activity.html ) "সিস্টেমের দ্বারা ক্রিয়াকলাপ সমাপ্ত বা ধ্বংস হচ্ছে" নোট করে যেটি বেশ অস্পষ্ট তবে এটি প্রস্তাবিত হতে পারে সমাপ্তি () onDestroy () এ যেতে পারে।
জাভাডক অন ফিনিস () একইভাবে হতাশাব্যঞ্জক ( http://developer.android.com/references/android/app/Activity.html#finish () ) এবং শেষ করার প্রতিক্রিয়াতে কোন পদ্ধতি (গুলি) বলা হয় তা আসলে নোট করে না ()।
সুতরাং আমি নীচে এই মিনি অ্যাপ্লিকেশন লিখেছি যা প্রবেশের সময় প্রতিটি রাজ্যে লগ হয়। এটিতে একটি বোতাম অন্তর্ভুক্ত রয়েছে যা কল করুন () - যাতে আপনি কোন পদ্ধতিগুলি নষ্ট হয়ে যায় তা লগ দেখতে পারেন। এই পরীক্ষায় পরামর্শ দেওয়া হয়েছিল যে সমাপ্তি () প্রকৃতপক্ষে অন পজ () এবং অনস্টপ () এও কল করে। আমি প্রাপ্ত আউটপুট এখানে:
2170-2170/? D/LIFECYCLE_DEMO﹕ INSIDE: onCreate
2170-2170/? D/LIFECYCLE_DEMO﹕ INSIDE: onStart
2170-2170/? D/LIFECYCLE_DEMO﹕ INSIDE: onResume
2170-2170/? D/LIFECYCLE_DEMO﹕ User just clicked button to initiate finish()
2170-2170/? D/LIFECYCLE_DEMO﹕ INSIDE: onPause
2170-2170/? D/LIFECYCLE_DEMO﹕ INSIDE: onStop
2170-2170/? D/LIFECYCLE_DEMO﹕ INSIDE: onDestroy
package com.mvvg.apps.lifecycle;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.Toast;
public class AndroidLifecycle extends Activity {
private static final String TAG = "LIFECYCLE_DEMO";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "INSIDE: onCreate");
setContentView(R.layout.activity_main);
LinearLayout layout = (LinearLayout) findViewById(R.id.myId);
Button button = new Button(this);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(AndroidLifecycle.this, "Initiating finish()",
Toast.LENGTH_SHORT).show();
Log.d(TAG, "User just clicked button to initiate finish()");
finish();
}
});
layout.addView(button);
}
@Override
protected void onStart() {
super.onStart();
Log.d(TAG, "INSIDE: onStart");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "INSIDE: onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "INSIDE: onDestroy");
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "INSIDE: onPause");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "INSIDE: onResume");
}
}