2013-05-16 3 views
0

백그라운드 스레드에서 하나의 HTML 문자열을 가진 하나의 응용 프로그램을 수행하고 있습니다. webview을의 HTML 문자열 을 사용하여로드하고 싶습니다.메인 스레드를 사용하지 않고 백그라운드 스레드에서 UI를 업데이트하는 방법

배경에서 웹보기를로드하면 앱이 충돌합니다. 나는 메인 스레드를 사용하여 webview을로드하고 싶지 않습니다. 왜냐하면 은 메인 스레드 인을 방해하고 싶지 않기 때문입니다. 그리고 나는 인터넷에서 R & D를 만들었습니다. GCD를 사용하여 하나의 가능성을 얻었습니다. 나는 또한 메인 스레드와 관련 있다고 생각합니다. 그래서 백그라운드에서 UI를 업데이트하는 방법을 알려주십시오.

+1

UIKit은 주 스레드에서만 작동합니다. 백그라운드 스레드에서 UIKit 구성 요소를 업데이트하면 예기치 않은 결과가 발생하고 충돌이 발생할 수 있습니다. 백그라운드 스레드에서 메인 스레드의 UI를 업데이트하는 함수를 호출하려면 performSelectorOnMainThread : withObject : waitUntilDone : 메서드를 호출하면됩니다. – Amar

+1

왜 메인 스레드에서 UI를 업데이트하고 싶지 않습니까? – BoltClock

+0

그 시간에 메인 htread는 다른 작업으로 바쁘다 – user811598

답변

1

수 없습니다. UI는 항상 주 스레드에서 업데이트해야합니다. 주 스레드에서이 작업을 수행하고 싶지 않은 이유가 무엇이든, 그 이유는 잘못되었습니다.

+0

이노스의 핸들러는 안드로이드에서 핸들러를 사용하기 때문에 발생합니다. – user811598

+0

다른 스레드에서 수행 된 계산을 기반으로 메인 스레드의 UI를 업데이트해야하는 경우이 질문을 확인하십시오. http://stackoverflow.com/questions/7028185/android-thread-modify-edittext – blaffie

0

아니요. 다른 스레드에서 UI를 업데이트 할 수 없습니다.

+0

ios의 핸들러는? 안드로이드에서 그들은 핸들러를 사용하여 이것을했습니다. – user811598

관련 문제