Bài 5: Vòng đời của Activity trong Android (Activity LifeCycle)

Activity trong Android là gì?

Activity trong Android được xem là một màn hình tương tác trong ứng dụng Android. Activity chịu trách nhiệm chuyển giao sự kiện cho các view trong nó và quản lý vòng đời (LifeCycle) của nó. Một ứng dụng Android có thể có một hoặc nhiều Activity. Và những Activity này có vòng đời độc lập với nhau và được duy trì trong Activity BackStack.

activity-trong-android

Vòng đời của Activity

Trước tiên chúng ta sẽ cùng nhau tìm hiểu vòng đời của Activity sau đó sẽ đi đến phần thực hành để hiểu rõ hơn.

Sơ đồ mô tả vòng đời của ứng dụng Android.

activity-trong-android_2

1. onCreate()

Phương thức callback này được gọi khi ứng dụng mới start, nhưng chưa có thể tương tác với người dùng. Ở trong phương thức này chúng ta thường sử dụng để setContentView(), khởi tạo cái view, inflate view từ xml đăng kí event cho view, khởi tạo Adapter cho ListView, RecyclerView…

2. onStart()

Phương thức callback này được gọi ngay sau khi onCreate()b được gọi. Ở phương thức này chúng ta vẫn chưa tương tác được với người dùng trên UI.

3. onResume()

Phương thức này được gọi ngay sau khi onStart() được gọi. Ở phương thức này chúng ta có thể tương tác được với UI.

4. onPause()

Phương thức callback này được sử dụng khá phổ biến trong vòng đời của Activity. Chúng ta thường lưu lại trạng thái của các biến trong method này.

5. onStop()

Phương thức callback này có thể được gọi ngay sau khi phương thức onPause được gọi. Phương thức này được gọi khi chúng ta nhấn nút home app.

6. onRestart()

Phương thức callback này gọi khi activity đã stoped, gọi trước khi bắt đầu start lại Activity.

7. onDestroy()

Phương thức này đợc gọi khi chúng ta nhấn back từ activity, hoặc call method finish() của activity.

Trên đây chúng ta đi cùng nhau tìm hiểu lý thuyết. Tiếp theo sẽ đi vào phần thực hành để cùng hiểu vòng đời trong Android là cái gì.

Example:

public class MainActivity extends AppCompatActivity {
 
    private static final String TAG = "MainActivity";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.e(TAG, "onCreate: ");
 
       findViewById(R.id.btn_nav).setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View view) {
               startActivity(new Intent(MainActivity.this, OtherActivity.class));
           }
       });
    }
 
    @Override
    protected void onStart() {
        super.onStart();
        Log.e(TAG, "onStart: ");
    }
 
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e(TAG, "onRestart: ");
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        Log.e(TAG, "onResume: ");
    }
 
    @Override
    protected void onPause() {
        super.onPause();
        Log.e(TAG, "onPause: ");
    }
 
    @Override
    protected void onStop() {
        super.onStop();
        Log.e(TAG, "onStop: ");
    }
 
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e(TAG, "onDestroy: ");
    }
}

Nguyễn Linh

Chia sẻ để cùng tiến bộ...