Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
670,94 KB
Nội dung
AndroidApplication’sLifeCycle Notes are based on: Unlocking Android by Frank Ableson, Charlie Collins, and Robi Sen. ISBN 978-1-933988-67-2 Manning Publications, 2009. Android Developers http://developer.android.com/index.html Part 3 2 3. Android – Application's LifeCycle Outline • Android Applications • Activity, Service, Broadcast receiver, Content provider • process • Application’sLifeCycle • Activity Stack • LifeCycle States • LifeCycle Events • Application’s Lifetime: Visible Lifetime Foreground Lifetime • LifeCycle Methods: onCreate(), onStart(), onDestroy() . • Example: LifeCycleDemo 2 3 3. Android – Application's LifeCycleAndroid Applications Một ứng dụng (application) bao gồm một hoặc vài component được định nghĩa trong manifest file của ứng dụng, gồm các loại: 1. Activity 2. Service 3. BroadcastReceiver 4. ContentProvider Ứng dụng Android so với Java application: •. Cũng viết 1 class để thực hiện một công việc nào đó •. Không dùng hàm main khởi tạo một object thuộc class đó và gọi phương thức của nó •. Tùy theo loại object (Activity, Service ), Android sẽ gọi constructor và quản lý vòng đời của object đó 3 4 3. Android – Application's LifeCycleAndroid Applications 1. Activity Một activity thường trình diễn một giao diện người dùng đơn bằng hình ảnh mà từ đó có thể thực hiện một số hành động (action). Tuy các activity cộng tác với nhau để hợp thành một giao diện người dùng thống nhất, mỗi activity có tính độc lập với các activity khác. Thông thường, một activity được đánh dấu làm activity đầu tiên – cái sẽ được trình diễn cho người dùng khi ứng dụng được bật lên. Việc gọi một activity từ bên trong một activity khác được thực hiện qua việc activity hiện hành gọi activity tiếp theo qua cơ chế intent. (startActivity(Intent)) 4 5 3. Android – Application's LifeCycleAndroid Applications 2. Service Một service không có giao diện người dùng bằng hình ảnh, thay vào đó, nó chạy ẩn tại background trong một khoảng thời gian không xác định. Có thể kết nối (bind to) với một service đang chạy (hoặc chạy service đó nếu nó hiện chưa chạy). Trong khi đang kết nối, ta có thể liên lạc với service đó qua một giao diện mà nó cung cấp. 5 6 3. Android – Application's LifeCycleAndroid Applications 3. Broadcast receiver Một broadcast receiver là một component không làm gì ngoài việc nhận và phản ứng với các broadcast announcement. Nhiều broadcast bắt nguồn từ mã hệ thống (ví dụ “you got mail“), nhưng bất cứ ứng dụng nào cũng có thể phát broadcast. Broadcast receiver không hiển thị giao diện người dùng. Tuy nhiên, chúng có thể bật một activity để đáp ứng thông tin mà chúng nhận được, hoặc - giống như cách làm của các service – chúng có thể dùng notification manager để thông báo cho người dùng. 6 7 3. Android – Application's LifeCycleAndroid Applications 4. Content provider Một content provider cung cấp một tập dữ liệu của một ứng dụng cho các ứng dụng khác. Dữ liệu thường được lưu trong hệ thống file, hoặc trong một CSDL SQLite. Mỗi content provider cài đặt một tập chuẩn các phương thức cho phép các ứng dụng khác lấy và lưu trữ dữ liệu thuộc loại mà nó kiểm soát. Tuy nhiên, các ứng dụng không gọi trực tiếp các phương thức này. Thay vào đó, chúng dùng một đối tượng content resolver và gọi các phương thức của đối tượng đó. Một content resolver có thể nói chuyện với một content provider bất kì; nó cộng tác với provider để quản lý quá trình liên lạc xuyên tiến trình (interprocess communication) phát sinh. 7 8 3. Android – Application's LifeCycleAndroid Applications Mỗi ứng dụng Android chạy trong một tiến trình riêng (cùng với thực thể máy ảo Dalvik của riêng nó). Mỗi khi có một request cần được xử lý bởi một component cụ thể nào đó, • Android đảm bảo rằng tiến trình ứng dụng của component đó đang chạy, • khởi động nó nếu cần, và • đảm bảo rằng có sẵn một thực thể (instance) của component đó, nếu cần thì tạo ra thực thể đó. 8 9 3. Android – Application's LifeCycleApplication’sLifeCycle Một tiến trình Linux dành cho một ứng dụng Android được tạo ra cho ứng dụng đó khi có một số phần code của ứng dụng đó cần chạy. Tiến trình đó sẽ tồn tại cho đến khi 1. không còn cần đến nó nữa, HOẶC 2. hệ thống cần thu hồi bộ nhớ để cho các ứng dụng khác dùng. 9 10 3. Android – Application's LifeCycleApplication’sLifeCycle Một tính chất đặc biệt nhưng căn bản của Android là các tiến trình không trực tiếp kiểm soát vòng đời của chính mình. Thay vào đó, số phận của nó được hệ thống quyết định dựa trên thông tin về 1. Các phần ứng dụng hiện đang chạy, 2. Tầm quan trọng của chúng đối với người dùng 3. Hệ thống còn bao nhiêu bộ nhớ. 10