Tôi tiếp tục nghe về các dịch vụ và máy thu phát sóng . Sự khác biệt giữa chúng là gì và chúng ảnh hưởng đến hoạt động của điện thoại Android theo quan điểm của tôi như thế nào?
Tôi tiếp tục nghe về các dịch vụ và máy thu phát sóng . Sự khác biệt giữa chúng là gì và chúng ảnh hưởng đến hoạt động của điện thoại Android theo quan điểm của tôi như thế nào?
Câu trả lời:
Các ứng dụng Android có ba loại thành phần. Nói chung, người dùng không cần biết về chúng: chúng là cách để các tác giả ứng dụng lập trình các hành vi cụ thể vào ứng dụng của họ. Nhưng nếu bạn đang theo dõi hành vi của ứng dụng một cách chặt chẽ, chẳng hạn như với trình quản lý tác vụ hoặc nếu bạn đang tự động hóa mọi thứ với một ứng dụng như Trình quản lý, sẽ rất hữu ích để hiểu cách chúng khớp với nhau trong hệ thống.
Một hoạt động là loại thành phần quen thuộc nhất: đó là một cửa sổ bạn có thể thấy: toàn màn hình hoặc kích thước hộp thoại. Một hoạt động chỉ chạy trong khi nó hiển thị trên màn hình. Khi bạn rời khỏi hoạt động, Android sẽ giữ ứng dụng đó trong bộ nhớ sẵn sàng để bắt đầu lại, nhưng hoạt động sẽ không chạy, nghĩa là nó sẽ không sử dụng pin hoặc mạng. Một ứng dụng bắt đầu một hoạt động bằng cách sử dụng một ý định . Mục đích có thể chỉ định rõ ràng hoạt động nào sẽ bắt đầu hoặc nó có thể chỉ định một hành động để thực hiện (chẳng hạn như mở một tệp cụ thể). Nếu nhiều hơn một hoạt động có thể "xử lý" ý định, bạn sẽ thấy hộp thoại yêu cầu bạn chọn một hoạt động.
Một dịch vụ là một thành phần ứng dụng khác. Khi một thành phần khác (có thể là một hoạt động hoặc dịch vụ khác) đã bắt đầu một dịch vụ, nó sẽ chạy trong nền cho đến khi nó dừng lại. Điều này có nghĩa là một dịch vụ có thể giúp điện thoại của bạn luôn hoạt động (sử dụng khóa đánh thức ), hết pin hoặc sử dụng nhiều dữ liệu mạng mà không có bất cứ điều gì hiển thị trên màn hình.
Ứng dụng có thể sử dụng các dịch vụ để thực hiện các quy trình chạy dài trong nền, chẳng hạn như tải xuống tệp từ máy chủ hoặc kiểm tra email hoặc kiểm tra vị trí của bạn. Mặc dù các dịch vụ không hiển thị hoặc tương tác trực tiếp với bạn, chúng vẫn hiển thị trong danh sách "Ứng dụng đang chạy". Từ Cài đặt ứng dụng, chọn Apps hay ứng dụng quản lý , và sau đó chạy . Bạn có thể dừng dịch vụ theo cách đó, nhưng thường không cần thiết. Vì các dịch vụ không hiển thị trực tiếp, Android coi chúng ít quan trọng hơn các hoạt động, vì vậy chúng sẽ là người đầu tiên bị giết khi điện thoại của bạn cần thêm bộ nhớ.
Máy thu phát sóng là loại thành phần thứ ba. Giống như các dịch vụ, chúng chỉ tồn tại trong nền và không tương tác trực tiếp với bạn. Nhưng không giống như các dịch vụ, chúng không thể chạy hoặc thực hiện các tác vụ dài: chúng tồn tại để đáp ứng với các sự kiện. Và không giống như các hoạt động và dịch vụ, nhiều hơn một máy thu phát sóng có thể được bắt đầu trong một lần.
Một thành phần phát ra một ý định, có thể là một ứng dụng, nhưng thường xuyên hơn mà không chỉ định một ứng dụng cụ thể. Trong trường hợp này, ý định thường đại diện cho một sự kiện đã xảy ra, chẳng hạn như pin sắp hết. Hệ thống tìm thấy tất cả các máy thu quảng bá đã đăng ký sở thích (sử dụng bộ lọc ý định ) và chạy lần lượt từng bộ thu. Mỗi máy thu quảng bá có thể phản ứng ngay lập tức, ví dụ bằng cách tạo thông báo hoặc có thể bắt đầu dịch vụ hoặc hoạt động để thực hiện thêm hành động. Ngay khi người nhận phát sóng đã xử lý sự kiện, nó sẽ bị dừng và sẽ không chạy lại cho đến khi một sự kiện tương tự khác được phát.
Một ví dụ về cả ba thành phần hoạt động cùng nhau là khi bạn tải xuống một ứng dụng từ Google Play. Đầu tiên, hoạt động Google Play cung cấp giao diện trực quan để bạn chọn nội dung cần tải xuống. Danh sách các ứng dụng có thể là một hoạt động; nhấp vào nút "cài đặt" sẽ bắt đầu một hoạt động khác để hiển thị hộp thoại xác nhận hoặc thanh toán. Khi bạn xác nhận, hoạt động hộp thoại bắt đầu một dịch vụ. Dịch vụ sẽ tiếp tục tải xuống nội dung ngay cả khi hoạt động đã kết thúc và không còn chạy.
Nhưng có lẽ điện thoại mất kết nối Internet trong khi ứng dụng mới đang tải xuống. Nếu điều này xảy ra, dịch vụ tải xuống của Google Play sẽ đăng ký một máy thu quảng bá, với bộ lọc ý định để nói rằng nó quan tâm đến các thay đổi kết nối mạng và sau đó dịch vụ sẽ tự dừng. Khi điện thoại kết nối với Internet, hệ thống sẽ phát một sự kiện. Android sẽ khởi động trình thu phát mà dịch vụ Google Play đã đăng ký, cùng với mọi trình thu phát khác đang chờ sự kiện đó. Trong trường hợp này, máy thu quảng bá sẽ bắt đầu lại dịch vụ tải xuống. Dịch vụ sẽ tạo thông báo khi quá trình tải xuống được tiến hành và khi kết thúc, nó sẽ gửi chương trình phát riêng để thông báo cho các ứng dụng khác rằng gói mới đã được cài đặt và sau đó sẽ tự dừng. Đổi lại, điều này sẽ bắt đầu thu phát từ các ứng dụng khác,
Tóm tắt:-