btnstart.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
started=true;
recordTask.execute();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
startService(intent);
}});
btnstop.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
stopService(intent);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
recordTask.cancel(true);
started=false;
}
});
먼저 만들고있는 어플의 버튼입니다. 시작버튼을 누르면 boolean으로 선언한 변수 started가 true가되고 execute된후에
서비스가 시작됩니다. 종료버튼을 누르면 서비스먼저 종료시키고 async를 종료시킨후에 started는 false가 되는데요.
처음 실행시 시작,종료 모두 잘됩니다. 그런데 한번시작하고 종료한 후에 또 시작을 하려면 에러가납니다.
java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can be executed only once)
에러 메세지 상으로는 이미 async가 돌아가고 있기 때문에 또 돌릴수 없다는 내용인 것 같은데 처음 종료버튼을 눌렀을때 제대로 종료시키려면 어떻게 해야하나요?