0
ToggleButton이 켜져있는 동안 내 애셋에서 임의의 사운드를 재생하는 메소드를 실행하고 싶습니다. ToggleButton이 꺼져있을 때 중지하십시오. 문제는 현재 구축 된 것처럼 내 코드가 UI 스레드로 잠겨 있다는 것입니다. 나는 AsyncTask를 올바르게 사용하고 있다고 생각했지만 분명히 그렇지는 않다.Android ToggleButton - UI 스레드를 잠그지 않고 사용할 때 수행 무비
내가 원하는 것을 달성하기 위해이 방법이나 더 나은 방법을 제안 할 수 있습니까?
private class PlayShuffleMode extends AsyncTask<String, Void, Void> {
@Override
protected Void doInBackground(String... fn) {
mService.playfav(fn[0]);
return null;
}
}
어떻게 ToggleButton이 AsyncTask에서 계속 켜져 있는지 확인할 수 있습니까? 위의 코드는 토글 버튼을 켠 후에 AsyncTask를 한 번만 실행합니다. – explosivo
감사. 이것은 나를 올바른 방향으로 인도하고 있습니다. 현재 AsyncTask 내부에서 ToggleButton의 상태를 확인하는 방법을 알 수 없습니다. 상태를 전달해야 할 것 같아서 onPostExecute() 메소드에서 확인할 수 있습니다. – explosivo
AsyncTask에서 상태를 확인하지 않아도됩니다. 토글 버튼을 클릭하면 onToggleClicked()가 호출되고 ToggleButton의 상태를 검사합니다. 켜져 있으면 AsyncTask를 만들어 캐시하고 실행하십시오. 'onToggleClicked()'가 다시 눌러 질 때까지 영원히 계속 재생됩니다. 상태가 꺼져 있으면 캐시 된 AsyncTask를 가져 와서 'cancel()'을 호출하여 재생을 종료 할 작업을 취소합니다. 위 코드를 더 명확하게 편집했습니다. –