Tôi đang học ngay bây giờ API Android bluetooth, và tôi chạy vào ví dụ BluetoothChat. http://developer.android.com/resources/samples/BluetoothChat/index.htmlBluetoothChat được đồng bộ hóa trên phương pháp vòng đời hoạt độngResume, tại sao?
Có nhiều lỗi, trước hết là thực tế đơn giản là nó sử dụng API 11 nhưng tệp kê khai không ép buộc API tối thiểu này.
điều thú vị khác là việc sử dụng từ khóa synchronized về phương pháp vòng đời hoạt động, như trên onResume:
@Override
public synchronized void onResume() {
super.onResume();
if(D) Log.e(TAG, "+ ON RESUME +");
// Performing this check in onResume() covers the case in which BT was
// not enabled during onStart(), so we were paused to enable it...
// onResume() will be called when ACTION_REQUEST_ENABLE activity returns.
if (mChatService != null) {
// Only if the state is STATE_NONE, do we know that we haven't started already
if (mChatService.getState() == BluetoothChatService.STATE_NONE) {
// Start the Bluetooth chat services
mChatService.start();
}
}
}
Tại sao từ khóa này được sử dụng đó? Có lời giải thích hợp lý nào hay chỉ đơn giản là người đã viết mã không biết rằng onResume sẽ luôn được gọi bởi cùng một luồng? Hoặc tôi bỏ lỡ một cái gì đó?
Cảm ơn bạn trước!
Tôi thực sự muốn biết câu trả lời cho câu hỏi này cũng ... –