I am new to android programming. I am working on an app which will make the flashlight blink when the button is pressed and turn it off when the button is pressed again.
Currently I am stuck in an infinite loop where I can't understand how to give it a command to end the loop when the button is pressed again.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
camera = Camera.open(); //opening camera hardware
params = camera.getParameters(); //getting parameters
//finding elements
final Button btn = (Button) findViewById(R.id.btn);
//accessed within inner class at onClick , so it must be declared final
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isOn){
params.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
isOn=false;
btn.setBackgroundResource(R.drawable.btnoff);
} else {
while(!isOn) {
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
params.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
btn.setBackgroundResource(R.drawable.btnon);
isOn=true;
}
}
});
}