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

Câu hỏi: PRM392 - Chương 2: Activity, Fragment và vòng đời

27 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.

Danh sách câu hỏi

20/27 câuCòn 7
ASet a Bundle and use the Fragment.setArguments(Bundle) method to supply the construction arguments for the fragment.
BUse the Fragment method getArguments() to get the arguments.
CDefine an interface in the Fragment class, and implement the interface in the activity.
DCall addToBackStack() during a transaction that removes the fragment.
Lời giải
Để gửi dữ liệu từ một hoạt động sang một fragment, bạn cần sử dụng phương thức setArguments() của Fragment. Phương thức này cho phép bạn cung cấp các tham số xây dựng cho fragment. Bạn cần tạo một đối tượng Bundle để lưu trữ dữ liệu, sau đó sử dụng phương thức setArguments() để truyền đối tượng Bundle này cho fragment. Sau đó, bạn có thể sử dụng phương thức getArguments() của Fragment để lấy lại dữ liệu đã được truyền. Điều này cho phép bạn chia sẻ dữ liệu giữa hoạt động và fragment một cách dễ dàng.
Mở trang câu hỏi này →
AFalse
BTrue
Lời giải
FragmentManager là lớp chịu trách nhiệm thực hiện các hành động đối với các phần tử fragment của ứng dụng của bạn, chẳng hạn như thêm, xóa hoặc thay thế chúng, và thêm chúng vào ngăn xếp.
Mở trang câu hỏi này →
AThe onStart() hook method is called back and the activity becomes visible
BThe onResume() hook method is called back to return UI focus for this screen
CThe UI focus is unchanged and no lifecycle hook methods are called
DA new activity is started and its onCreate() hook method is called
Lời giải
Khi người dùng nhập văn bản qua bàn phím ảo Android, không có sự thay đổi nào về tập trung UI và không gọi bất kỳ phương thức hook lifecycle nào. Điều này là vì việc nhập văn bản không tạo ra sự kiện mới nào, mà chỉ là một sự kiện tương tác với màn hình hiện tại. Do đó, tập trung UI vẫn giữ nguyên và không có sự thay đổi nào về trạng thái hoạt động của ứng dụng. Điều này có thể được minh họa qua các phương thức hook lifecycle như onStart(), onResume()... mà không được gọi khi người dùng nhập văn bản.
Mở trang câu hỏi này →
AstartActivityForResult
BstartActivity
CstartActivities
DstartActivityResult
Lời giải
Để mở màn hình screenB từ màn hình screenA và nhận dữ liệu từ screenB, chúng ta cần sử dụng phương thức startActivityForResult. Phương thức này cho phép màn hình screenA mở màn hình screenB và nhận lại dữ liệu từ màn hình screenB khi màn hình screenB đóng. Điều này rất hữu ích khi chúng ta cần nhận dữ liệu từ màn hình khác và xử lý dữ liệu đó trong màn hình hiện tại. Ví dụ, khi chúng ta muốn màn hình screenA nhận dữ liệu từ màn hình screenB sau khi người dùng nhập thông tin vào màn hình screenB.
Mở trang câu hỏi này →
5Which component contains fragments?4 lựa chọn
AAn information
BA value
CAn activity
DA lifecycle
Lời giải
Trong mô hình hoạt động của một ứng dụng, một hoạt động (activity) là một đơn vị thực hiện một chức năng cụ thể. Một hoạt động có thể bao gồm nhiều phần tử khác nhau như các thành phần UI, logic kinh doanh, giao tiếp mạng, v.v. Các phần tử này có thể được gọi là các mảnh (fragments) trong ngữ cảnh này. Do đó, hoạt động (activity) là thành phần chứa các mảnh (fragments).
Mở trang câu hỏi này →
AAndroid immediately shuts down your Activity by calling onStop(). Your code must restart the Activity
BAndroid shuts down your Activity by calling onPause(), onStop(), and onDestroy(). Your code must restart the Activity.
CAndroid shuts down your Activity by calling onPause(), onStop(), and onDestroy(), and then starts it over again, calling onCreate(), onStart(), and onResume().
DAndroid immediately calls onResume().
Lời giải
Khi một thiết bị thay đổi cấu hình (như xoay màn hình), các phương thức vòng đời hoạt động của Android sẽ được gọi. Điều này bao gồm các phương thức onPause(), onStop(), và onDestroy(). Sau đó, Android sẽ khởi tạo lại hoạt động bằng cách gọi các phương thức onCreate(), onStart(), và onResume(). Điều này cho phép hoạt động cập nhật lại trạng thái và nội dung của mình khi thiết bị thay đổi cấu hình. Ví dụ, khi xoay màn hình, hoạt động sẽ được khởi tạo lại để hiển thị nội dung phù hợp với định dạng màn hình mới.
Mở trang câu hỏi này →
AonCreate()
BonDraw()
ConClick()
DonStart()
EonPause()
Lời giải
Các phương thức trong vòng đời hoạt động và fragment là những phương thức được gọi khi một hoạt động hoặc fragment được tạo ra, bắt đầu, tạm dừng hoặc bị hủy. Trong các lựa chọn trên, onCreate() là phương thức được gọi khi một hoạt động hoặc fragment được tạo ra lần đầu tiên. onStart() là phương thức được gọi khi một hoạt động hoặc fragment bắt đầu chạy. onPause() là phương thức được gọi khi một hoạt động hoặc fragment tạm dừng chạy. Các phương thức khác như onDraw() và onClick() không phải là phương thức trong vòng đời hoạt động và fragment.
Mở trang câu hỏi này →
AfinishActivity()
Bfinish()
Cdestroy()
Dstop()
Lời giải
Để đóng một hoạt động, bạn có thể sử dụng phương thức finish(). Phương thức này sẽ đóng hoạt động hiện tại và đưa người dùng trở về màn hình trước đó. Phương thức finish() thường được sử dụng khi bạn muốn đóng một hoạt động và không muốn lưu lại trạng thái của hoạt động đó. Ví dụ, nếu bạn có một hoạt động để nhập thông tin và người dùng đã nhập xong thông tin, bạn có thể sử dụng phương thức finish() để đóng hoạt động nhập thông tin và đưa người dùng trở về màn hình chính. Ngoài ra, bạn cũng có thể sử dụng phương thức finish() để đóng hoạt động và đưa người dùng trở về màn hình trước đó khi người dùng nhấn nút quay lại.
Mở trang câu hỏi này →
Afinish()
BendActivity()
CdestroyActivity()
Lời giải
Khi nhấn nút Back mềm trên thiết bị Android, phương thức được gọi đầu tiên là finish(). Phương thức này được sử dụng để hủy hoạt động hiện tại và quay lại màn hình trước đó trong ứng dụng. Tuy nhiên, nó không hủy hoàn toàn hoạt động, mà chỉ hủy hoạt động hiện tại và giữ lại trạng thái của hoạt động trước đó. Điều này giúp ứng dụng có thể quay lại hoạt động trước đó khi cần thiết. Phương thức finish() thường được sử dụng trong các trường hợp như hủy hoạt động khi người dùng nhấn nút Back, hoặc khi người dùng muốn quay lại màn hình trước đó trong ứng dụng.
Mở trang câu hỏi này →
AonPause()
BonVisible()
ConDestroy()
DonStart()
Lời giải
Lifecycle của một hoạt động (activity) trong Android bao gồm các phương thức khác nhau được gọi tại các giai đoạn khác nhau của hoạt động. Để làm cho một hoạt động trở nên nhìn thấy (visible), cần gọi phương thức nào?
Mở trang câu hỏi này →
AA fragment has its own lifecycle and receives its own input events.
BIt is not possible to remove a fragment while the activity is running.
CA fragment is defined in a Kotlin class.
DA fragment's UI is defined in an XML layout file.
Lời giải
Các câu trả lời đúng về các fragment bao gồm: Một fragment có lifecycle riêng và nhận được các sự kiện nhập vào riêng, Một fragment được định nghĩa trong một lớp Kotlin, Và giao diện người dùng của một fragment được định nghĩa trong một tệp layout XML. Tuy nhiên, câu trả lời sai là: Một fragment có lifecycle riêng và nhận được các sự kiện nhập vào riêng. Điều này không đúng vì các fragment không có lifecycle riêng biệt như các hoạt động, mà chúng phải phụ thuộc vào lifecycle của hoạt động chứa nó. Ngoài ra, các fragment cũng không nhận được các sự kiện nhập vào riêng biệt như các hoạt động.
Mở trang câu hỏi này →
AonSaveInstanceState() is called before the onStop() method.
BonSaveInstanceState() is called before the onResume() method.
ConSaveInstanceState() is called before the onCreate() method.
DonSaveInstanceState() is called before the onDestroy() method.
Lời giải
onSaveInstanceState() được gọi trong Activity lifecycle khi ứng dụng đang thay đổi trạng thái, chẳng hạn như khi người dùng chuyển sang màn hình khác hoặc khi ứng dụng bị tạm dừng. Điều này xảy ra trước khi onStop() được gọi, vì onSaveInstanceState() được sử dụng để lưu trữ trạng thái của ứng dụng trước khi nó bị hủy bỏ. Điều này giúp ứng dụng có thể phục hồi trạng thái trước đó khi nó được khởi tạo lại. Vì vậy, onSaveInstanceState() được gọi trước onStop() để đảm bảo rằng trạng thái của ứng dụng được lưu trữ trước khi ứng dụng bị hủy bỏ.
Mở trang câu hỏi này →
AThe second Activity is added as a Java class. You still need to add the XML layout file.
BThe second Activity XML layout file is created and a Java class added. You still need to define the class signature.
CThe second Activity is added as a Java class, the XML layout file is created, and the AndroidManifest.xml file is changed to declare a second Activity.
DThe second Activity XML layout file is created, and the AndroidManifest.xml file is changed to declare a second Activity.
Lời giải
Khi bạn thêm một Activity thứ hai vào ứng dụng bằng cách chọn File > New > Activity và một mẫu Activity, các thay đổi sau sẽ được thực hiện. Thứ nhất, một Activity mới sẽ được thêm vào ứng dụng dưới dạng một lớp Java. Thứ hai, một tệp XML layout mới sẽ được tạo để chứa thiết kế giao diện người dùng của Activity mới. Cuối cùng, tệp AndroidManifest.xml sẽ được thay đổi để khai báo Activity mới này. Điều này cho phép hệ thống Android biết về sự tồn tại của Activity mới và có thể chuyển hướng đến nó khi cần thiết.
Mở trang câu hỏi này →
14When is activity paused?4 lựa chọn
AIf activity is at background and still visible
BIf activity is not visible
CIf the activity is at foreground and visible
DIf the activity is at foreground
Lời giải
Hoạt động bị tạm dừng khi nào? Hoạt động bị tạm dừng khi nó không còn được hiển thị trên màn hình. Điều này có thể xảy ra khi người dùng chuyển sang hoạt động khác hoặc khi ứng dụng bị đóng. Khi hoạt động không còn được hiển thị, hệ thống sẽ tạm dừng hoạt động đó để tiết kiệm tài nguyên và giảm thiểu việc sử dụng bộ nhớ. Điều này giúp ứng dụng hoạt động hiệu quả hơn và tránh bị quá tải. Ngoài ra, tạm dừng hoạt động cũng giúp ứng dụng có thể được phục hồi lại khi người dùng quay lại ứng dụng.
Mở trang câu hỏi này →
AActivity.onStop()
BActivity.onDestroy()
CActivity.onPause()
DActivity.onShutdown()
Lời giải
Để lưu dữ liệu chưa được lưu và giải phóng tài nguyên đang được sử dụng bởi một ứng dụng Android, chúng ta cần sử dụng phương thức phù hợp. Trong số các lựa chọn trên, Activity.onPause() là phương thức được sử dụng để tạm dừng hoạt động của ứng dụng, giúp lưu dữ liệu chưa được lưu và giải phóng tài nguyên. Phương thức này được gọi khi ứng dụng chuyển sang nền, giúp đảm bảo dữ liệu được lưu và ứng dụng được giải phóng tài nguyên để tránh lãng phí. Tuy nhiên, cần lưu ý rằng phương thức này không đảm bảo dữ liệu được lưu hoàn toàn, vì ứng dụng có thể bị hủy bỏ bất cứ lúc nào. Vì vậy, cần sử dụng phương thức này kết hợp với việc lưu dữ liệu vào bộ nhớ đệm hoặc cơ sở dữ liệu để đảm bảo dữ liệu được lưu an toàn.
Mở trang câu hỏi này →
AonCreate()
BonDraw()
ConClick()
DonStart()
EonPause()
Lời giải
Các phương thức trong vòng đời hoạt động và fragment là những phương thức được gọi tại các giai đoạn khác nhau của vòng đời của một hoạt động hoặc fragment. Trong các lựa chọn trên, phương thức onCreate() được gọi khi hoạt động hoặc fragment được tạo mới. Phương thức onStart() được gọi khi hoạt động hoặc fragment được thêm vào màn hình và sẵn sàng để hiển thị. Phương thức onPause() được gọi khi hoạt động hoặc fragment không còn là hoạt động chính và sẽ bị tạm dừng. Các phương thức khác như onDraw() và onClick() không phải là phương thức trong vòng đời hoạt động và fragment. Phương thức onDraw() được gọi để vẽ nội dung trên màn hình, còn phương thức onClick() được gọi khi một nút hoặc một phần tử khác được nhấn.
Mở trang câu hỏi này →
AIntent intent = new Intent(this, PhotoActivity.class); startActivityForResult(intent, TEXT_REQUEST);
BIntent intent = new Intent(this, PhotoActivity.class); startActivityForResult(intent, REQUEST_CODE);
CIntent intent = new Intent(this, PhotoActivity.class); startActivityForResult(intent, PHOTO_REQUEST);
DIntent intent = new Intent(this, PhotoActivity.class); startActivityForResult(intent, TEXT_CODE);
Lời giải

Để tạo một phương thức trong một Activity để bắt đầu một Activity khác gọi là PhotoActivity và nhận lại kết quả sử dụng một Intent rõ ràng, chúng ta cần sử dụng phương thức startActivityForResult(). Phương thức này yêu cầu hai tham số: Intent và mã yêu cầu. Trong trường hợp này, chúng ta đã tạo một Intent mới để bắt đầu PhotoActivity và sử dụng mã yêu cầu PHOTO_REQUEST. Mã yêu cầu này được sử dụng để nhận lại kết quả từ PhotoActivity. Vì vậy, câu trả lời đúng là: Intent intent = new Intent(this, PhotoActivity.class); startActivityForResult(intent, PHOTO_REQUEST);

Mở trang câu hỏi này →
AaddFragment()
BcommitFragment()
CbeginTransaction()
DaddToBackStack()
Lời giải
Để thêm một phần tử động vào một hoạt động, bạn cần sử dụng phương thức transaction. Phương thức này cho phép bạn thêm, xóa hoặc thay đổi các phần tử trong hoạt động mà không cần phải khởi tạo lại toàn bộ hoạt động. Trong trường hợp này, phương thức transaction được sử dụng để thêm một phần tử động vào hoạt động.
Mở trang câu hỏi này →
ADynamically added Fragments do not affect the Activity's lifecycle; thus, developers need not consider the Activity state when adding or removing Fragments.
BFragments added dynamically must be managed carefully during the Activity's lifecycle events, such as configuration changes, to prevent memory leaks or crashes due to lost context.
CDynamically adding Fragments to an Activity is discouraged as it complicates the Activity's lifecycle and makes the app more prone to errors.
DThe FragmentManager handles all complications arising from the Activity's lifecycle changes, so developers do not need to manually manage Fragments added dynamically.
Lời giải
Khi thêm Fragment vào Activity theo cách động, các nhà phát triển cần phải xem xét kỹ lưỡng về vòng đời của Activity để tránh các lỗi tiềm ẩn. Các Fragment được thêm vào động phải được quản lý cẩn thận trong các sự kiện vòng đời của Activity, chẳng hạn như thay đổi cấu hình, để ngăn chặn các lỗi do mất mát ngữ cảnh hoặc rò rỉ bộ nhớ. Điều này đặc biệt quan trọng khi Fragment được thêm vào hoặc loại bỏ trong quá trình hoạt động của Activity. Nếu không quản lý đúng cách, các Fragment có thể bị mất ngữ cảnh hoặc bị loại bỏ không đúng cách, dẫn đến các lỗi nghiêm trọng như rò rỉ bộ nhớ hoặc thậm chí là sự cố ứng dụng.
Mở trang câu hỏi này →
AonCreateView()
BonAttach()
ConPause()
DonDetach()
Lời giải
Khi thực hiện các nhiệm vụ chạy trong thời gian dài trong một phần tử (fragment), chúng ta cần tránh sử dụng phương thức nào? Câu trả lời đúng là "onCreateView()". Phương thức này được gọi khi phần tử được tạo và có thể gây ra các vấn đề về hiệu suất nếu thực hiện các nhiệm vụ chạy trong thời gian dài. Các phương thức khác như "onAttach()", "onPause()" và "onDetach()" không nên tránh sử dụng trong trường hợp này vì chúng không liên quan trực tiếp đến việc tạo phần tử. Tuy nhiên, cần lưu ý rằng "onPause()" thường được sử dụng để tạm dừng các hoạt động khi phần tử không còn hoạt động, nhưng nó không phải là phương thức chính để tránh sử dụng trong trường hợp này.
Mở trang câu hỏi này →