Ngân hàng câu hỏi của chương

Câu hỏi: PRM392 - Chương 5: Service, luồng và xử lý bất đồng bộ

26 câu trắc nghiệm kèm lời giải của môn Mobile Programming - Lập trình di động, xếp theo thứ tự nhập vào ngân hàng. Trang 2/2 — câu 21–26.

Danh sách câu hỏi

26/26 câuHết danh sách
21What is an Android Service used for?4 lựa chọn
ATo perform long-running operations in the background
BTo manage UI components
CTo store data persistently
DTo make network requests
Lời giải
Một dịch vụ Android (Android Service) là một thành phần quan trọng trong hệ điều hành Android, được sử dụng để thực hiện các tác vụ chạy nền (background tasks) trong ứng dụng. Dịch vụ Android cho phép ứng dụng thực hiện các hoạt động phức tạp và thời gian dài mà không cần phải tương tác với giao diện người dùng (UI). Điều này giúp ứng dụng trở nên hiệu quả hơn và không bị gián đoạn khi thực hiện các tác vụ chạy nền. Ví dụ, một ứng dụng có thể sử dụng dịch vụ Android để tải dữ liệu từ internet, thực hiện các tính toán phức tạp hoặc cập nhật dữ liệu trên cơ sở dữ liệu.
Mở trang câu hỏi này →
AActivity
BService
CBroadcast Receiver
DContent Provider
Lời giải
Để thực hiện một tác vụ chạy trong nền mà không chặn luồng chính, bạn nên sử dụng một trong những thành phần sau. Tuy nhiên, trong trường hợp này, thành phần phù hợp nhất là Service. Service cho phép bạn chạy một tác vụ trong nền mà không chặn luồng chính, giúp ứng dụng vẫn hoạt động trơn tru và không bị gián đoạn. Điều này đặc biệt quan trọng khi bạn cần thực hiện một tác vụ chạy trong thời gian dài mà không muốn ảnh hưởng đến trải nghiệm người dùng. Ngoài ra, Service cũng cho phép bạn thực hiện các tác vụ như cập nhật dữ liệu, gửi thông báo, v.v. mà không cần phải chặn luồng chính.
Mở trang câu hỏi này →
AIt is a subclass of the Service class.
BIt can interact directly with the user interface.
CIt handles requests using a worker thread.
DIt automatically stops itself when it runs out of work.
Lời giải
IntentService là một lớp dịch vụ trong Android được sử dụng để thực hiện các tác vụ nền. Nó là một lớp con của lớp Service và được thiết kế để xử lý các yêu cầu trong một luồng làm việc riêng biệt. Điều này giúp tránh các vấn đề về hiệu suất và đảm bảo rằng các tác vụ nền được thực hiện một cách hiệu quả. IntentService có thể được sử dụng để thực hiện các tác vụ như tải dữ liệu từ mạng, xử lý hình ảnh, v.v. Nó tự động dừng lại khi không còn tác vụ nào cần thực hiện. Tuy nhiên, một điều quan trọng cần lưu ý là IntentService không thể tương tác trực tiếp với giao diện người dùng.
Mở trang câu hỏi này →
AThis method is used to start the service; START_STICKY ensures that the service will never be killed by the system.
BThis method is called when startService() is invoked; START_STICKY indicates that if the service is killed, it will be recreated without any Intent being sent back.
CThis method is called when the service is created; START_STICKY indicates that the service will be restarted with the original Intent.
DThis method is called when the service is created; START_STICKY indicates that the service will be killed immediately when there are not enough resources.
Lời giải
Trong vòng đời của một dịch vụ đã được khởi chạy, mục đích của phương thức onStartCommand() là được gọi khi startService() được kích hoạt. Phương thức này cho phép dịch vụ thực hiện các hành động cần thiết khi được khởi chạy. Giá trị trả về START_STICKY có nghĩa là nếu dịch vụ bị giết, nó sẽ được tái tạo lại mà không cần gửi lại bất kỳ Intent nào. Điều này cho phép dịch vụ tiếp tục thực hiện các tác vụ của mình ngay cả khi bị giết bởi hệ thống. START_STICKY không chỉ đơn giản là tái tạo dịch vụ mà còn đảm bảo rằng dịch vụ sẽ tiếp tục thực hiện các tác vụ của mình sau khi bị giết.
Mở trang câu hỏi này →
APotential risks and challenges include race conditions, deadlocks, synchronization issues, and increased complexity of debugging.
BMultithreading in Android apps has no risks or challenges as long as AsyncTask is used for background tasks.
CMultithreading in Android apps improves app performance without any associated risks.
DMultithreading in Android apps only impacts battery consumption and has no other consequences.
Lời giải
Multithreading trong phát triển ứng dụng Android có thể mang lại nhiều lợi ích, chẳng hạn như cải thiện hiệu suất và tăng tốc độ xử lý. Tuy nhiên, cũng có những rủi ro và thách thức cần được xem xét. Một trong những rủi ro chính là điều kiện đua (race conditions), nơi mà các luồng thực thi đồng thời có thể gây ra lỗi hoặc hành vi không mong muốn. Ngoài ra, các vấn đề đồng bộ hóa (synchronization issues) cũng có thể xảy ra, khiến cho việc debug trở nên phức tạp hơn. Deadlocks, nơi mà các luồng bị mắc kẹt và không thể tiếp tục thực thi, cũng là một rủi ro cần được xem xét. Cuối cùng, việc sử dụng multithreading có thể làm tăng độ phức tạp của ứng dụng, khiến cho việc bảo trì và sửa lỗi trở nên khó khăn hơn.
Mở trang câu hỏi này →
AIt can interact directly with the UI.
BIt can handle multiple requests at the same time.
CIt uses a separate thread to handle requests, not blocking the main thread.
DIt can be interrupted.
Lời giải
IntentService là một lớp trong Android giúp thực hiện các tác vụ nền, không cần phải tương tác trực tiếp với giao diện người dùng. Một trong những lợi ích của việc sử dụng IntentService là nó sử dụng một luồng riêng biệt để xử lý yêu cầu, không chặn luồng chính của ứng dụng. Điều này giúp ứng dụng của bạn không bị chậm hoặc bị treo khi thực hiện các tác vụ nền. Ngoài ra, IntentService cũng có thể xử lý nhiều yêu cầu cùng một lúc, giúp tăng hiệu suất của ứng dụng. Tuy nhiên, IntentService không thể tương tác trực tiếp với giao diện người dùng và cũng không thể bị ngắt đột ngột.
Mở trang câu hỏi này →