Activity là một thành phần cốt lõi trong Android, đại diện cho một màn hình giao diện người dùng mà người dùng có thể tương tác. Mỗi ứng dụng Android thường bao gồm một hoặc nhiều Activity, và mỗi Activity thường đại diện cho một màn hình trong ứng dụng. Activity quản lý giao diện, tương tác với người dùng và điều phối các thành phần khác của ứng dụng.
Activity là phần cơ bản của ứng dụng Android, và việc hiểu rõ về nó giúp phát triển các ứng dụng mạnh mẽ, tương tác tốt. Bây giờ, chúng ta sẽ đi sâu vào chi tiết về Activity, cách hoạt động của nó, và các khái niệm liên quan.
Một Activity trong Android có vai trò quan trọng vì nó quản lý giao diện người dùng (UI) và xử lý tương tác với người dùng. Mỗi Activity sẽ hiển thị một bố cục (layout) và cho phép người dùng tương tác thông qua các thành phần UI như nút, văn bản, danh sách, v.v.
Vòng đời của một Activity trong Android bao gồm các trạng thái từ khi Activity được tạo ra cho đến khi nó bị hủy. Hiểu rõ về vòng đời giúp nhà phát triển quản lý hiệu quả các tài nguyên hệ thống và đảm bảo rằng ứng dụng hoạt động mượt mà, không bị tiêu tốn nhiều tài nguyên.
Các trạng thái chính trong vòng đời của một Activity bao gồm:
onCreate()
Phương thức này được gọi khi Activity được khởi tạo lần đầu tiên. Đây là nơi bạn có thể thực hiện các thiết lập ban đầu, chẳng hạn như định nghĩa giao diện của Activity và khởi tạo các biến hoặc thành phần.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Đặt giao diện cho Activity }
onStart()
Sau khi Activity được tạo, phương thức onStart()
sẽ được gọi khi Activity chuẩn bị xuất hiện trên màn hình.
onResume()
Phương thức này được gọi khi Activity trở nên khả dụng và người dùng có thể tương tác với nó. Tại thời điểm này, Activity đã hoàn toàn hiển thị trên màn hình và đang hoạt động ở trạng thái foreground.
onPause()
Phương thức này được gọi khi Activity tạm thời dừng lại, chẳng hạn khi một Activity khác xuất hiện trên màn hình nhưng Activity hiện tại vẫn còn một phần hoạt động trong nền.
onStop()
Khi Activity không còn hiển thị trên màn hình và không còn tương tác với người dùng, phương thức onStop()
sẽ được gọi. Activity có thể bị hủy hoặc quay trở lại trạng thái onRestart()
.
onRestart()
Phương thức này được gọi khi Activity quay trở lại từ trạng thái dừng (onStop()
), chẳng hạn khi người dùng quay lại ứng dụng sau khi đã thoát ra.
onDestroy()
Phương thức này được gọi ngay trước khi Activity bị hủy hoàn toàn. Đây là nơi bạn giải phóng các tài nguyên mà Activity đã sử dụng.
onCreate() -> onStart() -> onResume() onPause() -> onStop() onRestart() -> onResume() onDestroy()
Dưới đây là một ví dụ cơ bản về Activity, trong đó chúng ta tạo một Activity và đặt giao diện của nó là một tập tin XML chứa một nút bấm:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Giao diện XML của Activity } }
Trong tệp activity_main.xml
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click Me" /> </LinearLayout>
Trong ví dụ này, MainActivity
là một Activity hiển thị giao diện có chứa một nút bấm.
Trong Android, ứng dụng thường có nhiều Activity, và các Activity này có thể tương tác với nhau. Một trong những cách phổ biến nhất để bắt đầu một Activity mới là sử dụng Intent.
Dưới đây là cách sử dụng Intent
để mở một Activity khác:
Intent intent = new Intent(this, SecondActivity.class); startActivity(intent);
Trong ví dụ này, khi MainActivity
thực hiện startActivity()
, nó sẽ mở SecondActivity
.
Một Activity có thể bị hệ thống hủy khi tài nguyên hệ thống khan hiếm (ví dụ, khi bộ nhớ thấp) hoặc khi người dùng chuyển sang một ứng dụng khác. Để đảm bảo rằng dữ liệu không bị mất khi Activity bị hủy, bạn cần sử dụng phương thức onSaveInstanceState()
để lưu trạng thái của Activity và onRestoreInstanceState()
để khôi phục trạng thái.
@Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); // Lưu dữ liệu vào outState outState.putString("key", "Giá trị"); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); // Khôi phục dữ liệu từ savedInstanceState String value = savedInstanceState.getString("key"); }
Activity là một thành phần cốt lõi trong ứng dụng Android, quản lý giao diện người dùng và điều phối các tác vụ. Hiểu rõ về vòng đời của Activity và cách quản lý chúng giúp đảm bảo ứng dụng hoạt động mượt mà và tiết kiệm tài nguyên. Bằng cách tận dụng Activity một cách hiệu quả, bạn có thể xây dựng các ứng dụng mạnh mẽ, có trải nghiệm người dùng tốt và tối ưu hóa hiệu suất hệ thống.