Là thành phần tối quan trọng của bất kỳ một ứng dụng Android nào. Thuật ngữ Activity chỉ một việc mà người dùng có thể thực hiện trong một ứng dụng Android. Do gần như mọi activity đều tương tác với người dùng, lớp Activity đảm nhận việc tạo ra một cửa sổ (window) để người lập trình đặt lên đó một giao diện UI với setContentView(View). Một activity có thể mang nhiều dạng khác nhau: Một cửa sổ toàn màn hình (full screen window), một cửa sổ floating (với windowsIsFloating) hay nằm lồng bên trong 1 activity khác (với ActivityGroup).
Để có thể sử dụng trong ứng dụng, mọi activity đều phải được khai báo trong tệp
AndroidManifest.xml với một thẻ <activity> như ví dụ sau:
Toàn bộ trạng thái của Activity được biểu diễn trong sơ đồ sau:
Các Activity được quản lí trong một stack chứa activity– (Cơ chế vào trước ra sau):
- Khi ứng dụng được mở lên thi activity chính sẽ được tạo ra, nó sẽ được thêm vào stack.
- Khi một activity mới được khởi tạo, nó sẽ được đặt lên trên cùng của stack. Lúc này chỉ có duy nhất Activity trên cùng là hiển thị nội dung đến người dùng. Tất cả các Activity còn lại đều chuyển về trạng thái dừng hoạt động.
- Khi một Activity bị đóng nó sẽ bị loại khỏi stack. Lúc này Activity nằm dưới đó sẽ chuyển từ trạng thái tạm dừng sang trạng thái hoạt động.
Một Activity có bốn trạng thái:
o Active hay Running: Activity đang chạy trên màn hình.
o Paused: Khi một Activity mất focus nhưng vẫn đang chạy trên màn hình (Activity bị một activity trong suốt(transparent) hoặc một Activity không chiếm toàn bộ màn hình thiết bị (non-full-sized) đè lên). Tuy vẫn còn tồn tại, nhưng các “paused activity” này sẽ bị hệ thống bắt chấm dứt khi thiếu bộ nhớ trầm trọng.
o Stopped: Khi một activity bị che khuất hoàn toàn bởi một activity khác. Tuy vẫn tồn tại, nhưng các “stopped activity” này sẽ thường xuyên bị hệ thống bắt chấm dứt để dành bộ nhớ cho các công việc khác.
o Killed hay Shutdown: Khi một activity đang Paused hay Stopped, hệ thống sẽ xóa activity ấy ra khỏi bộ nhớ.
Ba vòng đời quan trọng trong Activity
o Vòng đời toàn diện (Entire Lifetime): Diễn ra từ lần gọi onCreate(Bundle) đầu tiên và kéo dài tới lần gọi onDestroy() cuối cùng.
o Vòng đời thấy được (Visible Lifetime): Diễn ra từ khi gọi onStart() và kéo dài tới khi gọi onStop(). Ở vòng đời này, activity được hiển thị trên màn hình mặc dù có thể nó không thể tương tác với người dùng (Activity có thể bị đè bởi một Activity trong suốt hoặc một Activity không chiếm toàn bộ màn hình thiết bị(non-full-sized)). Giữa hai phương thức này cần giữ lại các tài nguyên dùng để hiển thị nội dung lên màn hình Activity. VD: Bạn có thể đăng kí (register) một BroadcastReceiver để theo dõi “những thay đổi” có ảnh hưởng đến phần giao diện của bạn trong phương thức onStart() và hủy
đăng kí (unregister) BroadcastReceiver trong phương thức onStop(). Các phương thức onStart() và onStop() có thể được gọi nhiều lần.
o Vòng đời trên nền (Foreground Lifetime): Diễn ra từ khi gọi onResume() và kéo dài tới khi gọi onPause(). Ở vòng đời này, activity nằm trên mọi activity khác và tương tác được với người dùng. Một activity có thể liên tục thay đổi giữa hai trạng thái Paused và Resumed ( VD: Chẳng hạn khi thiết bị sleep).
Bạn có thể tham khảo đầy đủ tại http://developer.android.com/reference/android/app/Activity.html
3. Demo hiểu hiểu về Activity
No comments:
Post a Comment