Я передаю некоторые данные по Bluetooth между двумя телефонами, у меня есть часть синхронизации, и после этой синхронизации я хочу изменить данные между телефонами.
public void syncPhone1(){ // Phone1 function
send("mes");
if(readData.equal("mes:ok")){
flag = true;
}
}
public void syncPhone2(){ // Phone2 function
if(readData.equal("mes")){
send("mes");
flag = true;
}
}
Эта функция вызывается в функции runnable Handler
с задержкой 100 мс
final Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
if (sync == false) {
syncPhone1();
// syncPhone2();
sync =true;
}
if (flag == true) {
changeDataPhone1();
//changeDataPhone2();
}
handler.postDelayed(this, 100);
}
};
handler.postDelayed(runnable, 100);
После выполнения этой синхронизации flag = true
я начинаю отправлять-получать некоторые данные
В некоторых случаях flag
устанавливается true
только для Phone2, а затем Phone 2 начинает передавать данные. Для Phone1 flag
не установлено true
, и phone1 не начнет передавать данные.
Есть ли у вас идеи, как решить эту проблему?