Font size
WorksheetsTrích xuất câu hỏi từ phiếu bài tập (ảnh chụp màn hình)
Total questions: 40
Worksheet time: 22mins
Giả sử có 2 activity đã được tạo trong project là MainActivity và SecondActivity. Hãy chọn phần còn thiếu để hoàn thành khai báo Intent mở SecondActivity từ MainActivity trong Kotlin: val intent = Intent(this, (a) ). (Chú ý phân biệt chữ hoa chữ thường)
Chọn hằng số phù hợp để mở giao diện gọi điện nhưng chưa thực hiện cuộc gọi. Điền vào vị trí X trong Intent.X
(a)
Thành phần nào là đối tượng được tự động tạo bởi Data Binding?
ViewModel
LiveData
Binding Class
LayoutInflater
Phương thức nào được sử dụng để kết thúc một activity đang chạy?
dispose()
finish()
finishActivity()
destroy()
Loại menu nào được mở khi người dùng nhấn và giữ đối tượng trong một khoảng thời gian?
Context Menu
Option Menu
Drawer Menu
Popup Menu
LiveData trong Android được sử dụng để làm gì?
Lưu trữ dữ liệu lâu dài
Quan sát và phản ứng với các thay đổi của dữ liệu một cách tự động
Thay thế toàn bộ ViewModel
Hiển thị thông báo lỗi
Để hiển thị ảnh tạm thời khi Glide tải ảnh từ Internet, phương thức nào được sử dụng?
Sử dụng RequestOptions() và gọi phương thức placeholder() với ảnh nằm trong thư mục resource drawable
Gắn thuộc tính Glide.placeholder cho id của ảnh nằm trong thư mục resource drawable
Sử dụng RequestOptions() và gọi phương thức loadingImage() với ảnh nằm trong thư mục resource drawable
Sử dụng phương thức into() với id ảnh nằm trong thư mục resource drawable
Phương thức nào không bắt buộc phải override khi khai báo lớp adapter kế thừa từ lớp RecyclerView.Adapter?
onBindViewHolder
getItemCount
onCreateViewHolder
getItemViewType
Đối tượng nào được sử dụng để tạo giao diện có thể tái sử dụng trong các phần khác nhau của activity?
Intent
Service
BroadcastReceiver
Fragment
Để chạy một đoạn chương trình ở luồng background trong activity, lệnh nào sau đây được sử dụng?
lifecycleScope.launch(Dispatchers.Main) { /* Đoạn lệnh cần thực hiện */ }
lifecycleScope.launch(Dispatchers.IO) { /* Đoạn lệnh cần thực hiện */ }
viewModelScope.launch(Dispatchers.IO) { /* Đoạn lệnh cần thực hiện */ }
viewModelScope.launch(Dispatchers.Main) { /* Đoạn lệnh cần thực hiện */ }
Phương thức nào được sử dụng để mở activity mới từ activity hiện tại?
beginActivity
startActivity
newActivity
openActivity
Intent ngầm định (Implicit intent) được sử dụng với mục đích gì?
Để mở một service của ứng dụng hiện tại
Để mở một activity của ứng dụng khác
Để đóng activity của ứng dụng khác
Để mở một activity của ứng dụng hiện tại
Giả sử đối tượng database trong thư viện Room được khởi tạo như sau: Room.databaseBuilder(context.applicationContext, StudentDatabase::class.java, "student_db").fallbackToDestructiveMigration().build() Khi chạy ứng dụng trên máy, các file student_db được lưu vào vị trí nào trong thư mục dành riêng của ứng dụng?
databases
cache
shared_prefs
files
Không file nào được tạo ra
Liệt kê các phương thức callback trong vòng đời của activity?
onCreate(), onStart(), onActivityStarted(), onResume(), onPause(), onStop(), onActivityDestroy(), onDestroy()
onCreate(), onStart(), onResume(), onPause(), onStop(), onRestart(), onDestroy()
onCreate(), onInit(), onStart(), onPause(), onStop(), onDestroy(), onResume()
onCreate(), onStart(), onPause(), onResume(), onFinish(), onStop(), onDestroy()
Lớp nào được sử dụng để theo dõi sự thay đổi trong vòng đời của một activity?
LiveData
LifecycleObserver
ViewModel
DataBinding
Phát biểu nào sau đây không đúng về intent?
Các intent xác định yêu cầu xác định lớp activity cần mở
Có intent ngầm định và intent xác định cho phép ứng dụng mở activity khác
Các intent được thực hiện bằng cách sử dụng phương thức startActivity()
Khi thực hiện một intent ngầm định, hệ thống luôn mở hộp thoại hỏi người dùng lựa chọn activity cần thực hiện
Điều gì xảy ra nếu Timeout() vượt quá thời gian giới hạn?
Gửi cảnh báo nhưng không dừng coroutine
Coroutine tiếp tục chạy
Gây ra ngoại lệ TimeoutCancellationException
Dừng hoàn toàn ứng dụng
Trong lập trình với Coroutine, hàm launch() trả về loại đối tượng nào?
Thread
CoroutineScope
Job
Deferred
LiveData là một phần của thư viện nào trong Android?
AndroidX ViewBinding
Android Room
Android Jetpack
Android Core Library
Giả sử có file layout với nội dung sau: Sử dụng Data Binding expression, hãy điền đoạn mã còn thiếu vào chỗ trống [ ] để khi người dùng chọn CheckBox thì TextView sẽ hiện, còn khi bỏ chọn thì TextView sẽ ẩn. Chọn đáp án đúng.
(a)
Lớp ArrayAdapter không sử dụng được với kiểu danh sách nào?
GridView
ListView
Spinner
RecyclerView
Phát biểu nào sau đây đúng về intent ngầm định (implicit intent)?
Hệ điều hành Android nhận các yêu cầu và tìm ứng dụng thỏa mãn
Hệ điều hành Android cần danh sách các ứng dụng đăng ký để chạy intent ngầm định
Để mở bằng intent ngầm định, cần phải biết tên lớp của activity cần mở
Hệ điều hành Android sẽ mở hộp thoại cho phép người dùng chọn ứng dụng nếu có nhiều hơn một ứng dụng có thể thực hiện intent ngầm định
Dispatcher nào được sử dụng để chạy coroutine trên luồng giao diện?
Dispatchers.IO
Dispatchers.Default
newSingleThreadContext()
Dispatchers.Main
Nếu phương thức onCreateOptionsMenu được viết chồng trong activity, loại menu nào sẽ được tạo?
Context Menu
Popup Menu
Navigation Drawer Menu
ActionBar Menu
Giả sử có đoạn chương trình sau: @Entity(tableName = "students") data class Student( @PrimaryKey val mssv: Int, val name: String, val email: String ) @Dao interface StudentDao { // Đoạn mã thiếu cần điền fun deleteStudentByMssv(mssv: Int) } Hãy điền mã nguồn còn thiếu vào chỗ trống để thực hiện xóa sinh viên theo mã số sinh viên. Chọn đáp án đúng.
@Delete("DELETE FROM students WHERE mssv = :mssv")
@Delete
@Query("DELETE FROM students WHERE mssv - :mssv")
@Query("DELETE FROM students WHERE mssv = :mssv")
Khi sử dụng thư viện Room, chú thích nào được sử dụng để đánh dấu một lớp ứng với một bảng trong cơ sở dữ liệu?
@Entity
@Dao
@PrimaryKey
@Database
Thư viện Room được sử dụng với mục đích gì?
Xác thực người dùng
Thực hiện các thao tác cơ sở dữ liệu
Kết nối mạng
Mã hoá dữ liệu
Để kích hoạt Data Binding trong dự án, cần thêm gì vào tệp build.gradle?
enableDataBinding()
buildFeatures { dataBinding = true }
Không cần thay đổi gì
dataBinding.enabled = true
Nếu một activity có tên là SampleActivity.kt sử dụng file layout activity_sample.xml, đáp án nào là tên của lớp binding được tạo tự động khi sử dụng kỹ thuật data binding?
SampleActivityBinding
ActivitySampleBinding
sample_activity_binding
activity_sample_binding
Khi sử dụng Data Binding, thuộc tính nào trong XML được sử dụng để gắn giá trị từ ViewModel vào View?
#{}
@{}
%{}
${}
Để hiển thị một danh sách với kiểu giao diện phức tạp nhiều thành phần, đối tượng nào có cách thiết lập khác với các đối tượng còn lại?
AutoCompleteTextView
Spinner
RecyclerView
GridView
ListView
Phát biểu nào sau đây không chính xác về ViewModel?
ViewModel có thể được sử dụng để chia sẻ dữ liệu giữa các fragment.
ViewModel có thể được sử dụng để chia sẻ dữ liệu giữa các activity.
Mỗi fragment có thể tạo ViewModel riêng.
Fragment có thể truy nhập vào ViewModel của activity chủ.
Phát biểu nào không phải là ưu điểm khi sử dụng fragment (so với activity)?
Di chuyển giữa các fragment cho phép sử dụng các mẫu thiết kế phức tạp như TabBar hoặc NavigationDrawer.
Fragment gọn nhẹ hơn activity nên cần ưu tiên sử dụng fragment hơn activity.
Sử dụng các fragment trong một activity cho phép thực hiện kiểu giao diện thích nghi với các kích thước màn hình khác nhau.
Cùng một lớp fragment có thể được tái sử dụng ở các activity khác nhau.
Lớp nào không được sử dụng để xử lý các thao tác kết nối mạng trong Android?
Retrofit
Volley
HttpURLConnection
JSONObject
Lớp "RecyclerView" được sử dụng với mục đích gì?
Truy nhập cơ sở dữ liệu
Là một kiểu layout để bố trí giao diện
Là công cụ quản lý bộ nhớ
Hiển thị một danh sách
Phương thức onCreateView() chỉ được gọi một lần trong suốt vòng đời của fragment là đúng hay sai?
Đúng
Sai
Giả sử có API với endpoint như sau: https://example.com/users/123
Endpoint này sử dụng phương thức GET để lấy về thông tin của user có id là 123.
Đoạn mã sau định nghĩa hàm trong interface Retrofit ứng với endpoint này:
@GET("users/{uid}")
suspend fun getUser([ ] userid: String): User
Hãy điền vào chỗ trống đoạn mã còn thiếu?
@Path("uid")
@Path("userid")
@Query("uid")
@Query("userid")
Mục đích chính của Coroutine trong Kotlin là gì?
Lưu trữ dữ liệu
Phân tích chuỗi định dạng XML
Xử lý ảnh
Đơn giản hóa việc lập trình bất đồng bộ
Chọn phát biểu không chính xác về kỹ thuật ViewHolder được áp dụng cho các đối tượng kiểu danh sách trong Android?
Giúp giảm số lần tham chiếu các đối tượng khi sử dụng phương thức findViewById()
Được áp dụng mặc định với RecyclerView
Không sử dụng được với ListView
Cần phải tạo lớp riêng chứa các đối tượng giao diện
Màn hình console sẽ hiện ra kết quả như thế nào?
CBA
BAC
CAB
ABC
