Khi hoạt động được tạo lần đầu tiên, hệ thống gọi phương thức OnContentChanged()
làm phương thức đầu tiên và cuộc gọi cuối cùng theo hệ thống là phương pháp OnDetachedFromWindow()
khi hoạt động bị giết. toàn bộ thời gian tồn tại của Hoạt động diễn ra giữa OnCreate()
và OnDestroy()
. Tại sao? Xin hãy giúp tôi hiểu sự khác biệt giữa các phương pháp này.Phương thức hoạt động: onCreate() và onDestroy()
Code:
import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;
import android.widget.Toast;
public class ActivitylifecycleActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onContentChanged() {
super.onContentChanged();
Toast.makeText(getApplicationContext(),"1. onContentChanged()", Toast.LENGTH_SHORT).show();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast.makeText(getApplicationContext(),"2. onCreate()", Toast.LENGTH_SHORT).show();
}
@Override
public void onStart() {
super.onStart();
Toast.makeText(getApplicationContext(),"3. onStart()", Toast.LENGTH_SHORT).show();
}
@Override
public void onRestoreInstanceState(Bundle restoreInstanceState) {
Toast.makeText(getApplicationContext(),"4. onRestoreinstaneState()", Toast.LENGTH_SHORT).show();
super.onRestoreInstanceState(restoreInstanceState);
}
@Override
public void onRestart() {
super.onRestart();
Toast.makeText(getApplicationContext(),"5. onRestart()", Toast.LENGTH_SHORT).show();
}
@Override
protected void onPostCreate(Bundle onpostcrete) {
super.onPostCreate(onpostcrete);
Toast.makeText(getApplicationContext(),"6. onPostCreate()", Toast.LENGTH_SHORT).show();
}
@Override
public void onResume() {
super.onResume();
Toast.makeText(getApplicationContext(),"7. onResume()", Toast.LENGTH_SHORT).show();
}
@Override
protected void onPostResume() {
super.onPostResume();
Toast.makeText(getApplicationContext(),"8. onPostResume()", Toast.LENGTH_SHORT).show();
}
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
Toast.makeText(getApplicationContext(),"9. onAttachedToWindow()", Toast.LENGTH_SHORT).show();
}
@Override
public void onWindowFocusChanged(boolean bo) {
super.onWindowFocusChanged(true);
Toast.makeText(getApplicationContext(),"10. onWindowFocusChanged()", Toast.LENGTH_SHORT).show();
}
@Override
public void onUserLeaveHint() {
super.onUserLeaveHint();
Toast.makeText(getApplicationContext(),"11. onUserLeaveHint()", Toast.LENGTH_SHORT).show();
}
@Override
public void onUserInteraction() {
super.onUserInteraction();
ii=0;
Toast.makeText(getApplicationContext(),"12. onUserInteraction()", Toast.LENGTH_SHORT).show();
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
Toast.makeText(getApplicationContext(),"13. onSaveInstanceState()", Toast.LENGTH_SHORT).show();
}
@Override
public void onPause() {
super.onPause();
Toast.makeText(getApplicationContext(),"14. onPause()", Toast.LENGTH_SHORT).show();
}
@Override
public void onStop() {
super.onStop();
Toast.makeText(getApplicationContext(),"15. onStop()", Toast.LENGTH_SHORT).show();
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(getApplicationContext(),"16. onDestroy()", Toast.LENGTH_SHORT).show();
}
@Override
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
Toast.makeText(getApplicationContext(),"17. onDetachedFromWindow()", Toast.LENGTH_SHORT).show();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Toast.makeText(getApplicationContext(),"18. onConfigurationChanged()", Toast.LENGTH_SHORT).show();
}
@Override
public boolean onSearchRequested() {
super.onSearchRequested();
Toast.makeText(getApplicationContext(),"19. onSearchRequested()", Toast.LENGTH_SHORT).show();
return false;
}
}
Trong mã này, onContentChanged()
được gọi trước khi onCreate()
phương pháp và onDetachedFromWindow()
được gọi sau khi onDestroy()
. Tại sao?
nhưng 'onContentChanged()' và 'onDetachedFromWindow()' cả hai phương thức được gọi một lần trong vòng đời trong một hoạt động. khi một hoạt động mới được tạo ra, hệ thống gọi phương thức 'onContentChanged()' trước 'onCreate()' và khi một Activity sẽ hủy System Call 'onDetachedFromWindow()' làm phương thức cuối cùng. –
onContentChanged() được gọi là bất cứ khi nào thay đổi nội dung cửa sổ. Khi thay đổi nội dung cửa sổ trên hoạt động bắt đầu do đó nó được gọi. Nhưng nếu thay đổi nội dung cửa sổ trong khi thực thi hoạt động trênContentChanged sẽ được gọi lại nhiều lần bất cứ khi nào thay đổi nội dung. Tương tự như trường hợp của cửa sổ onDetachedFrom, nó được gọi khi khung nhìn hoạt động không hiển thị rõ ràng hơn ví dụ khi cửa sổ bị phá hủy hoặc một hoạt động khác xuất hiện trong nền trước. Phương thức này có thể được gọi nhiều lần. –
mã này 'onContentChanged()' được gọi là perior to 'onCreate()' –