I have a class which initiates a sensor listener when it is started. This listener writes the latest sensor value to a variable when an event is triggered. The class goes on
This is not strictly related to android, but also general java question. Mechanism to implement this is container in java.lang.Oject. Assuming you have some guard object, where producer and consumer threads have access. On consumer thread you call:
guard.wait(some_optional_delay_Look_into_javadoc);
Then cosumer thread will wait until timeout ocurs or hell frozes out or producer thread issues:
guard.notify[All]();
(read documentation)
Your service listener will be producer.
I am using Handler for exactly same situation.
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
x1.setText(String.valueOf(sensors.getValueAccX()));
Log.d("Sensors", String.valueOf(sensors.getValueAccZ()));//using persoanl methods that are not shown here
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
Toast.makeText(ClientSideActivity.this,
"Server is not running", Toast.LENGTH_LONG).show();
// TODO Auto-generated catch block
e.printStackTrace();
}
// TODO Auto-generated method stub
handler.postDelayed(this, 100);
}
});