JavaScript is required
Danh sách đề

200+ câu trắc nghiệm Lập trình cho di động giải thích đáp án ngắn gọn, dễ hiểu - Đề 2

50 câu hỏi 60 phút

Thẻ ghi nhớ
Luyện tập
Thi thử
Nhấn để lật thẻ
1 / 50

Trong Android, để thực hiện các tác vụ lặp đi lặp lại (repeated tasks), nên sử dụng gì?

A.

TimerTask

B.

LoopTask

C.

ScheduledExecutorService

D.

CountDownTimer

Đáp án
Đáp án đúng: C

Trong Android, để thực hiện các tác vụ lặp đi lặp lại (repeated tasks), chúng ta nên sử dụng ScheduledExecutorService. Dưới đây là lý do tại sao các phương án khác không phù hợp:



  • TimerTask: TimerTask là một abstract class có thể được kế thừa để thực hiện một tác vụ, thường được sử dụng với Timer. Tuy nhiên, Timer có một số hạn chế, ví dụ như chỉ có một thread duy nhất thực thi các tác vụ, nếu một tác vụ chậm có thể ảnh hưởng đến các tác vụ khác.

  • LoopTask: Không có class hoặc concept nào tên là LoopTask trong Android SDK.

  • ScheduledExecutorService: Đây là một interface cho phép scheduling các command để chạy sau một khoảng thời gian nhất định, hoặc thực hiện định kỳ. Nó cung cấp nhiều tính năng hơn so với Timer, bao gồm khả năng sử dụng thread pool để thực thi các tác vụ song song, và xử lý các exception một cách tốt hơn.

  • CountDownTimer: CountDownTimer thường được sử dụng để thực hiện một tác vụ sau một khoảng thời gian nhất định, và có thể gọi callback sau mỗi tick. Nó không phù hợp để thực hiện các tác vụ lặp đi lặp lại.


Do đó, ScheduledExecutorService là lựa chọn tốt nhất để thực hiện các tác vụ lặp đi lặp lại trong Android.

Danh sách câu hỏi:

Lời giải:
Đáp án đúng: C

Trong Android, để thực hiện các tác vụ lặp đi lặp lại (repeated tasks), chúng ta nên sử dụng ScheduledExecutorService. Dưới đây là lý do tại sao các phương án khác không phù hợp:



  • TimerTask: TimerTask là một abstract class có thể được kế thừa để thực hiện một tác vụ, thường được sử dụng với Timer. Tuy nhiên, Timer có một số hạn chế, ví dụ như chỉ có một thread duy nhất thực thi các tác vụ, nếu một tác vụ chậm có thể ảnh hưởng đến các tác vụ khác.

  • LoopTask: Không có class hoặc concept nào tên là LoopTask trong Android SDK.

  • ScheduledExecutorService: Đây là một interface cho phép scheduling các command để chạy sau một khoảng thời gian nhất định, hoặc thực hiện định kỳ. Nó cung cấp nhiều tính năng hơn so với Timer, bao gồm khả năng sử dụng thread pool để thực thi các tác vụ song song, và xử lý các exception một cách tốt hơn.

  • CountDownTimer: CountDownTimer thường được sử dụng để thực hiện một tác vụ sau một khoảng thời gian nhất định, và có thể gọi callback sau mỗi tick. Nó không phù hợp để thực hiện các tác vụ lặp đi lặp lại.


Do đó, ScheduledExecutorService là lựa chọn tốt nhất để thực hiện các tác vụ lặp đi lặp lại trong Android.

Lời giải:
Đáp án đúng: C
Trong Android, để gửi dữ liệu giữa các thành phần ứng dụng, đặc biệt là giữa các Activity, Intent là một cơ chế mạnh mẽ và linh hoạt.

* startActivity(): Phương thức này được sử dụng để khởi chạy một Activity mới. Khi sử dụng `startActivity()`, bạn có thể kèm theo một Intent để truyền dữ liệu đến Activity đích. Intent này có thể chứa dữ liệu dưới dạng các extra (key-value pairs) mà Activity đích có thể truy xuất. Đây là cách phổ biến và được khuyến nghị để truyền dữ liệu giữa các Activity.

* sendIntent(): Không có phương thức `sendIntent()` trong Android SDK. Có thể đây là một cách diễn đạt không chính xác.

* sendBroadcast(): Phương thức này được sử dụng để gửi một Broadcast Intent đến tất cả các receiver đã đăng ký để lắng nghe Intent đó. Broadcast Intent thường được sử dụng để thông báo các sự kiện hệ thống hoặc ứng dụng (ví dụ: thay đổi kết nối mạng, pin yếu) và không phải là cách chính để truyền dữ liệu trực tiếp giữa các Activity.

* setContent(): Phương thức này thường được sử dụng trong ngữ cảnh của các ContentProvider để cung cấp dữ liệu cho các ứng dụng khác, hoặc để thiết lập nội dung hiển thị cho một View (ví dụ: trong một Activity hoặc Fragment). Nó không phải là cơ chế để truyền dữ liệu giữa các Activity.

Do đó, đáp án chính xác nhất là B. startActivity(), vì nó cho phép truyền dữ liệu thông qua Intent đi kèm khi khởi chạy một Activity mới.
Lời giải:
Đáp án đúng: B

Trong ngữ cảnh của việc tạo ra một đơn vị mã có thể mở rộng hoặc thu gọn trong method signature (chữ ký phương thức), chúng ta cần xem xét cách các ký hiệu khác nhau thường được sử dụng trong lập trình, đặc biệt là trong việc định nghĩa các tham số hoặc khối mã.

  • [] (Dấu ngoặc vuông): Thường được sử dụng để khai báo mảng hoặc truy cập các phần tử trong mảng. Không phù hợp để tạo một đơn vị mã có thể mở rộng hoặc thu gọn trong method signature.
  • {} (Dấu ngoặc nhọn): Được sử dụng để định nghĩa một khối mã (block of code), chẳng hạn như thân của một phương thức, một vòng lặp, hoặc một cấu trúc điều khiển. Trong một số ngôn ngữ, nó cũng có thể được sử dụng để khởi tạo các đối tượng hoặc định nghĩa các literal cho đối tượng, nhưng không phải là mục đích chính trong method signature.
  • () (Dấu ngoặc đơn): Được sử dụng để bao quanh danh sách tham số trong định nghĩa phương thức (method definition) hoặc khi gọi một phương thức. Nó cho phép chúng ta truyền các giá trị vào phương thức và có thể mở rộng hoặc thu gọn số lượng tham số tùy thuộc vào thiết kế của phương thức (ví dụ: sử dụng tham số tùy chọn hoặc varargs). Đây là ký hiệu phù hợp nhất để tạo một đơn vị mã có thể mở rộng hoặc thu gọn.
  • || (Dấu gạch đứng đôi): Thường được sử dụng như là toán tử logic OR. Không liên quan đến việc định nghĩa method signature hoặc tạo ra các đơn vị mã có thể mở rộng/thu gọn.

Do đó, dấu ngoặc đơn () là lựa chọn phù hợp nhất để tạo ra một đơn vị mã có thể mở rộng hoặc thu gọn trong method signature, vì nó cho phép định nghĩa các tham số mà có thể tùy chỉnh số lượng hoặc loại.

Lời giải:
Đáp án đúng: B

A. AsyncTask:
AsyncTask cho phép thực hiện các tác vụ nền một cách dễ dàng và trực tiếp từ luồng giao diện người dùng. Nó cung cấp các phương thức như doInBackground() (thực hiện tác vụ nền), onPreExecute() (chuẩn bị trước khi thực hiện), onPostExecute() (xử lý kết quả sau khi thực hiện) và onProgressUpdate() (cập nhật tiến trình), giúp dễ dàng quản lý và tương tác với giao diện người dùng trong quá trình thực hiện tác vụ nền.


B. IntentService:
IntentService cũng được sử dụng cho các tác vụ nền, nhưng nó tự động xử lý các yêu cầu tuần tự trên một luồng làm việc duy nhất. IntentService thích hợp cho các tác vụ cần thực hiện lần lượt và không cần tương tác trực tiếp với giao diện người dùng.


C. Handler:
Handler cho phép gửi và xử lý các Message và Runnable liên quan đến một luồng (thread). Nó thường được sử dụng để giao tiếp giữa các luồng, nhưng việc quản lý luồng và tác vụ nền phức tạp hơn so với AsyncTask hoặc IntentService.


D. BroadcastReceiver:
BroadcastReceiver dùng để nhận các broadcast từ hệ thống hoặc ứng dụng khác và phản hồi lại. Nó không được thiết kế để thực hiện các tác vụ nền dài hạn.


Trong trường hợp này, AsyncTask là lựa chọn phù hợp nhất vì nó được thiết kế đặc biệt để thực hiện các tác vụ nền ngắn hạn và tương tác với giao diện người dùng.

Lời giải:
Đáp án đúng: A
Trong Android, giao diện `Parcelable` được sử dụng để đóng gói dữ liệu để có thể truyền giữa các thành phần khác nhau của ứng dụng (ví dụ: giữa các Activity, Service). Để triển khai `Parcelable`, bạn cần triển khai phương thức `writeToParcel()`. Phương thức này chịu trách nhiệm ghi các trường dữ liệu của đối tượng vào một đối tượng `Parcel`. Khi nhận dữ liệu, `Parcel` sẽ sử dụng `CREATOR` để tạo lại đối tượng từ dữ liệu đã được ghi.

Các lựa chọn khác không đúng vì:
- `serialize()`: Đây là một khái niệm chung trong lập trình để chuyển đổi một đối tượng thành một định dạng có thể lưu trữ hoặc truyền đi, nhưng không phải là một phần của giao diện `Parcelable` trong Android.
- `transmitData()` và `packageData()`: Đây không phải là các phương thức chuẩn hoặc liên quan đến việc triển khai `Parcelable` trong Android.
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 9:

Phiên bản Android nào ra đời vào tháng 09/2013?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 12:

The tab that shows completed events logs is

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 18:

Câu nào KHÔNG ĐÚNG về Android?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 21:

Trong Android, để tạo một hiệu ứng (animation), thường sử dụng lớp nào?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 22:

Phiên bản nào của Android được gọi là "Marshmallow"?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 24:

A part of android system, DVM is actually a

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 25:

Trong Android, để lấy vị trí của thiết bị, cần sử dụng lớp nào?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 29:

ANR là viết tắt của

Chọn một:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 31:

JDK được sử dụng để làm gì?

Chọn một:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 39:

Trong Java, JRE là gì?

Chọn một:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 42:

Khoảng biểu diễn của biến kiểu short trong java là

Chọn một:

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 44:

Đâu là lớp con trực tiếp của activity?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Câu 47:

Nếu một thuộc tính của lớp là private, làm thế nào để truy cập thuộc tính đó từ đối tượng của lớp?

Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP