问题描述
在我的Android应用中,我想使用一个按钮OnClickListener连接到多个传感器。但是,在每次建立连接之前,都需要一次取出每个传感器。
成功连接传感器后,将调用 onSensorConnected
。但是,现在它正尝试在调用onSensorConnected
之前连接到下一个传感器。
因此,我尝试在连接传感器(wait()
)时实现onConnectSensors
,在建立连接(notify()
)时实现onSensorConnected
。这应该允许下一个传感器执行相同的过程。
但是,在notify
中的onSensorConnected
信号之前,传感器仍在连接。我需要一些有关如何使用wait
和notify
的指导。
public class myFragment extends Fragment {
Button connect;
private Boolean sensorConnected = false;
private final Object lock = new Object();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.myLayout,container,false);
connect = (Button)root.findViewById(R.id.connectBtn);
connect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onConnectSensors(0); // Connect sensor one at a time..
onConnectSensors(1);
onConnectSensors(2);
onConnectSensors(3);
onConnectSensors(4);
onConnectSensors(5);
onConnectSensors(6);
onConnectSensors(7);
onConnectSensors(8);
onConnectSensors(9);
}
});
return root;
}
// Position is the sensor position in a recyclerview
public void onConnectSensors(int position) {
BluetoothDevice device = mScanAdapter.getDevice(position);
mSensorViewModel.connectSensor(getContext(),device);
// Sensor is now establishing connnection...
// Wait until recieving sensorConnected = true
try {
synchronized (lock) {
while ( sensorConnected != true ) { // Wait until sensorConnected is true
lock.wait();
}
sensorConnected = false; // reset status for next sensor
}
} catch ( InterruptedException x ) {}
}
@Override
public void onSensorConnected() { // This is called automatically when sensor is finishing connection
synchronized ( lock ) {
sensorConnected = true;
lock.notify();
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)