。 3つのボタンがあります(On、Off、SOS)。アプリはスレッドの割り込みの選択肢はありますか? SOSモードと懐中電灯アプリケーションを構築
//this method gets called when Off button is pressed
private void turnOffFlash() {
if (FlashOn) {
if (myCamera == null || myParameters == null) {
return;
}
myParameters = myCamera.getParameters();
myParameters.setFlashMode(Parameters.FLASH_MODE_OFF);
myCamera.setParameters(myParameters);
myCamera.stopPreview();
try {
if (SOSon)
Flashthread.interrupt();
SOSon = false;
} catch (Exception ex) {
throw ex;
}
FlashOn = false;
number_of_press=0;
}
}
(SOSモードがオフのdoesnt)。通常のオンとオフモードではなく、SOSモードで動作し、私がいることを読んで以来
Flashthread
は、
turnOffFlash
方法で
void onSOSPress() {
if (number_of_press == 1) {
try {
SOSon = true;
if (!Flashthread.isInterrupted()) {
if (SOSon) {
Flashthread = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < System.currentTimeMillis(); i++) {
if (FlashOn) {
myParameters.setFlashMode(Parameters.FLASH_MODE_OFF);
myCamera.setParameters(myParameters);
FlashOn = false;
} else {
TurnOnFlash();
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
Flashthread.start();
}
} else
Flashthread.resume();
} catch (Exception ex) {
throw ex;
}
}
}
ここで使用されていますInterruptメソッドは本当にスレッドを中断/中断しません。Thread.Interrupt();
の代わりに何を使用すればOff
ボタンを押すとSOS
モードが停止しますか?私はstop()
とdestroy()
を試みたが、両方のアプリをクラッシュし 。
のような人気のライブラリのいずれかで使用されていますか?代わりに 'Handler'を使うのに何が問題になっていますか? –
「ハンドラ」を使ってSOSモードを試してみます。しかし、一般的に、割り込みが実際に意図した作業をしないこの状況では、私は何をする必要がありますか? –
はまた、可能ならば、あなたは「ハンドラ」を使用して、これを実現するためのコードサンプルを送ってくださいだろうか?ありがとうございました! –