Это первый раз, когда я участвую в приложении на базе bluetooth на Android и для лучшего понимания того, как это работает, я изучаю пример BluetoothChat.
Более или менее я думаю, что все понимаю, но я пришел к выводу, что больше не могу идти дальше.
В чем причина написания данных таким образом?Несинхронизированный способ записи по Bluetooth на примере BluetoothChat
public void write(byte[] out) {
// Create temporary object
ConnectedThread r;
// Synchronize a copy of the ConnectedThread
synchronized (this) {
if (mState != STATE_CONNECTED) return;
r = mConnectedThread;
}
// Perform the write unsynchronized
r.write(out);
}
Почему бы не позвонить по mConnectedThread.write (out) напрямую?
И какова цель этой синхронизации?
Я понимаю (очевидно, ошибочно), этот код выполняется только в основном потоке, и в этом случае зачем нам этот мьютекс?
Спасибо всем.
P.S .: Извините за мой плохой английский!