Sunday, December 23, 2012

[Google Android SDK]-Tìm hiểu Activity

1. Activity là gì?
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: 
2. Vòng đời của một Activity
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