Activity trong Android
Một Activity đại diện cho một màn hình với một giao diện người dùng.Giống như window hay Frame trong Java, Bạn có thể đặt các Widget vào một màn hình đơn giản.
Ví dụ: Một ứng dụng Email sẽ có một Activity để hiển thị tất cả các Email, một Activity khác để để soạn Email, một Activity khác để đọc Email. Nếu một ứng dụng có nhiều hơn 1 Activity thì một trong số chúng sẽ được đánh dấu là Activity hiển thị đầu tiên khi ứng dụng khởi chạy.
Vòng đời của một Activity
Vòng đời của một Activity trong Android gồm có 7 phương thức, mỗi phương thức thể hiện hành vi khác nhau của Activity.
Nếu bạn đã từng lập trình với ngôn ngữ C, C++, Java thì bạn cũng biết rằng chương trình bắt đầu chạy từ hàm main(), theo cách tương tự thì Android cũng khởi đầu bởi 1 activity được đánh dấu là khởi đầu bằng cách gọi phương thức onCreate(). Có một chuỗi các phương thức được gọi để bắt đầu một activity và một chuỗi các phương thức khác để hủy 1 activity, như hình bên dưới:
Phương thức | Ý nghĩa |
---|---|
onCreate() | Nó là phương thức đầu tiên được gọi dùng để tạo một activity vào lần đầu tiên activity được gọi. |
onStart() | Sẽ được gọi khi nó hiện hữu với người dùng. |
onResume() | Sẽ được gọi khi người dùng tương tác với các ứng dụng. |
onPause() | Tạm dừng một activity, không nhận dữ liệu do người dùng nhập vào và không thế thực thi lệnh nào. Phương thức này được gọi khi activity hiện tại đang được tạm dừng, và activity trước đó đang được tiếp tục. |
onStop() | Được gọi khi một activity đã không được nhìn thấy trong thời gian dài. |
onRestart() | Được gọi khi activity cần được dùng trở lại sau khi bị gọi onStop(); |
onDestroy() | Được gọi trước khi hệ thống hủy activity. |
Ví dụ: Đây là ví dụ đơn giản về vòng đời của một activity. Trong ví dụ này chúng ta hiển thị nội dung thông báo vào logcat
Tạo project với name: LifeCircle
File: src/com.example.lifecircle/MainActivity.java:
package com.example.lifecircle; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends Activity { @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); } @Override protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); } @Override protected void onStop() { // TODO Auto-generated method stub super.onStop(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
Cách thêm các phương thức nhanh trong Eclipse IDE:
Click - Right trên trình soạn thảo ---> chọn Source---> chọn Override / Implement Methods:
Chọn các phương cần thêm vào :
Kết quả: Bạn cần mở logcat để xem các phương thức được gọi
Trong màn hình logcat chúng ta sẽ thấy các phương được gọi: onCreate, onStart và onResume
Bây giờ click HOME . Phương thức onPause sẽ được gọi:
Sau vài giây phương thức onStop được gọi:
Bây giờ nhìn vào máy ảo, có nút Home, Click vào nút Center để mở lại app
Click vào icon LifeCircle
Bây trong màn hình logcat: phương thức onRestart, onStart and onResume.
Trên máy ảo xuất hiện lại app
Bây giờ click vào Button Back, bạn sẽ thấy phương thức onPause được gọi
Vài giây sau bạn sẽ thấy phương thức onStop và onDestroy được gọi:
Cập nhật công nghệ từ Youtube tại link: https://www.youtube.com/channel/UCOxeYcvZPGf-mGLYSl_1LuA/videos
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com