자체보기가 여러 개인 사용자 지정보기가 있습니다. 이 컨테이너보기 내부의보기 중 하나를 클릭하면 매초마다 컨테이너보기 내부의 TextView를 업데이트해야하는 "타이머"스레드가 실행되도록했습니다. 매초마다 TextView를 업데이트하려고 할 때 내 문제가 발생합니다. 분명히, 생각했던 것만 큼 쉽지는 않았습니다. 나는 그렇게처럼 내 컨테이너 내부보기 Runnable를 구현하고 버튼을 눌러 타이머를 시작합니다 클릭 한 스레드 실행 : 보기에서 UI 스레드에서 실행
public void run() {
while(runnning) {
// if one second has passed, update the Textview
}
}
나는 기본적으로 그것의 의미 전형적인 할 수없는 터치 - 뷰 - 외부 계층 구조 예외를 얻을를 UI 스레드에서 실행되지 않습니다. 나는
post(Runnable)
을 사용하고 싶지 않습니다. 왜냐하면 저는 스레드의 끝까지 1 초를 기다리기를 기다리고 싶지 않기 때문입니다.
runOnUiThread(Runnable)
을 실행하기 위해 전체 활동을 전달하는 것도 실용적이지 않습니다. 그래서 누군가이 일을 어떻게 할 수 있는지 말해 줄 수 있습니까? 누구든지 설명이 필요하면 알려주세요!
감사합니다. AsyncTasks로 알아 냈습니다! – Brian