উচ্চ রেটযুক্ত উত্তরের শীর্ষে আরও কিছু তথ্য যুক্ত করা (কিলাবলির অতিরিক্ত বিভাগ এবং পরবর্তী পদ্ধতিগুলির সেট করা হয়েছে, যা জীবনচক্রে ডাকা হবে):
সূত্র: ডেভেলপার.অ্যান্ড্রয়েড.কম
উপরের টেবিলের " কিলাবল " কলামটি নোট করুন - সেই পদ্ধতিগুলির জন্য যেটিকে যোগ্যযোগ্য হিসাবে চিহ্নিত করা হয়েছে, সেই পদ্ধতিটি ফিরে আসার পরে ক্রিয়াকলাপের হোস্টিং প্রক্রিয়াটি সিস্টেমের দ্বারা অন্য কোনও কোডের অন্য কোনও লাইন ছাড়া কার্যকর করা হতে পারে any
এর কারণে, আপনার onPause()
স্টোরেজে কোনও ধ্রুবক ডেটা (যেমন ব্যবহারকারীর সম্পাদনাগুলি) লেখার জন্য পদ্ধতিটি ব্যবহার করা উচিত । তদ্ব্যতীত, এই onSaveInstanceState(Bundle)
জাতীয় ব্যাকগ্রাউন্ড অবস্থায় ক্রিয়াকলাপ স্থাপনের আগে পদ্ধতিটি বলা হয় Bundle
, আপনার ক্রিয়াকলাপের যে কোনও গতিশীল উদাহরণ রাষ্ট্রটিকে প্রদত্তর মধ্যে সরিয়ে দেওয়ার অনুমতি দেয় , পরে onCreate(Bundle)
যদি ক্রিয়াকলাপটি পুনরায় তৈরি করার প্রয়োজন হয় তবে তা গ্রহণ করা যেতে পারে।
মনে রাখবেন onPause()
পরিবর্তে অবিরাম ডেটা সংরক্ষণ করা জরুরী onSaveInstanceState(Bundle)
কারণ পরেরটি জীবদ্দশার কলব্যাকের অংশ নয়, সুতরাং এটির ডকুমেন্টেশনে বর্ণিত প্রতিটি অবস্থাতেই ডাকা হবে না।
আমি আরও কয়েকটি পদ্ধতি যুক্ত করতে চাই। এগুলি জীবনচক্র পদ্ধতি হিসাবে তালিকাভুক্ত নয় তবে কিছু শর্তের উপর নির্ভর করে জীবন চক্র চলাকালীন তাদের ডাকা হবে। আপনার প্রয়োজনের উপর নির্ভর করে, আপনাকে সঠিকভাবে রাষ্ট্র পরিচালনার জন্য আপনার প্রয়োগে এই পদ্ধতিগুলি প্রয়োগ করতে হতে পারে।
onPostCreate(Bundle savedInstanceState)
ক্রিয়াকলাপ শুরু হওয়ার সময় শেষ হয়ে গেলে (পরে) after onStart()
এবং onRestoreInstanceState(Bundle)
বলা হয়ে থাকে) বলা হয়।
onPostResume()
ক্রিয়াকলাপ পুনরায় শুরু হওয়ার পরে বলা হয় (এর পরে) onResume()
বলা হয় ডাকা )।
onSaveInstanceState(Bundle outState)
হত্যার আগে একটি ক্রিয়াকলাপ থেকে প্রতি-দৃষ্টান্তের স্থিতি পুনরুদ্ধার করতে বলা হয় যাতে রাষ্ট্রটি পুনরুদ্ধার করা যায় onCreate(Bundle)
বা onRestoreInstanceState(Bundle)
(এই পদ্ধতিতে জনবহুল বান্ডেল উভয়কেই দেওয়া হবে)।
onRestoreInstanceState(Bundle savedInstanceState)
onStart()
পূর্বে সংরক্ষিত রাজ্য থেকে এখানে ক্রিয়াকলাপটি পুনরায় সূচনা করার পরে এই পদ্ধতিটি বলা হয় savedInstanceState
।
এই সমস্ত পদ্ধতি ব্যবহার করে আমার অ্যাপ্লিকেশন কোড:
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
private EditText txtUserName;
private EditText txtPassword;
Button loginButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("Ravi","Main OnCreate");
txtUserName=(EditText) findViewById(R.id.username);
txtPassword=(EditText) findViewById(R.id.password);
loginButton = (Button) findViewById(R.id.login);
loginButton.setOnClickListener(this);
}
@Override
public void onClick(View view) {
Log.d("Ravi", "Login processing initiated");
Intent intent = new Intent(this,LoginActivity.class);
Bundle bundle = new Bundle();
bundle.putString("userName",txtUserName.getText().toString());
bundle.putString("password",txtPassword.getText().toString());
intent.putExtras(bundle);
startActivityForResult(intent,1);
// IntentFilter
}
public void onActivityResult(int requestCode, int resultCode, Intent resIntent){
Log.d("Ravi back result:", "start");
String result = resIntent.getStringExtra("result");
Log.d("Ravi back result:", result);
TextView txtView = (TextView)findViewById(R.id.txtView);
txtView.setText(result);
Intent sendIntent = new Intent();
//sendIntent.setPackage("com.whatsapp");
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Message...");
sendIntent.setType("text/plain");
startActivity(sendIntent);
}
@Override
protected void onStart() {
super.onStart();
Log.d("Ravi","Main Start");
}
@Override
protected void onRestart() {
super.onRestart();
Log.d("Ravi","Main ReStart");
}
@Override
protected void onPause() {
super.onPause();
Log.d("Ravi","Main Pause");
}
@Override
protected void onResume() {
super.onResume();
Log.d("Ravi","Main Resume");
}
@Override
protected void onStop() {
super.onStop();
Log.d("Ravi","Main Stop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d("Ravi","Main OnDestroy");
}
@Override
public void onPostCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onPostCreate(savedInstanceState, persistentState);
Log.d("Ravi","Main onPostCreate");
}
@Override
protected void onPostResume() {
super.onPostResume();
Log.d("Ravi","Main PostResume");
}
@Override
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
super.onSaveInstanceState(outState, outPersistentState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
}
লগইন ক্রিয়াকলাপ:
public class LoginActivity extends AppCompatActivity {
private TextView txtView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
txtView = (TextView) findViewById(R.id.Result);
Log.d("Ravi","Login OnCreate");
Bundle bundle = getIntent().getExtras();
txtView.setText(bundle.getString("userName")+":"+bundle.getString("password"));
//Intent intent = new Intent(this,MainActivity.class);
Intent intent = new Intent();
intent.putExtra("result","Success");
setResult(1,intent);
// finish();
}
}
আউটপুট: (বিরতির আগে)
D/Ravi: Main OnCreate
D/Ravi: Main Start
D/Ravi: Main Resume
D/Ravi: Main PostResume
আউটপুট: (বিরতি থেকে পুনরায় শুরু করার পরে)
D/Ravi: Main ReStart
D/Ravi: Main Start
D/Ravi: Main Resume
D/Ravi: Main PostResume
নোটটি onPostResume()
জীবন চক্র পদ্ধতি হিসাবে উদ্ধৃত না হওয়া সত্ত্বেও অনুরোধ করা হয়েছে।