2012-09-17 3 views
0

나는 bump android sdk를 사용하고 있습니다. 나는 브로드 캐스트 리시버를 가지고 있으며 다른 인 텐트 필터에 따라 ui의 일부 요소를 업데이트하고 싶습니다. 예를 들어broadcastreceiver에서 UI 업데이트

else if (action.equals(BumpAPIIntents.NOT_MATCHED)) { 
       Log.i("Bump Test", "Not matched."); 
       BumpTest inst = BumpTest.instance(); 
       if(inst != null) { 

        inst.UpdateMyText("testing"); 
       } 

문제는 로그 캣에서 내가 로그 항목을

를 호출 할 것 나던 텍스트 뷰 업데이트 방법이 있습니까 내가 뭔가 잘못하고를 볼 수 있지만 무엇입니까?

+0

"bump android sdk"란 무엇입니까? http://bu.mp/? 방송 수신기에서 UI를 업데이트하는 것은 잘못된 것입니다. onReceive()가 –

+0

이라면 앱 실행이 보장되지 않습니다. 그게 내가 말하는 샘이야. 해당 이벤트 (NOT_MATCHED)에서 텍스트 뷰를 변경하는 좋은 방법은 무엇입니까 – pocorschi

+0

응용 프로그램이 실행 중인지 myapp.this.UpdateMyText ("testing")인지 확인해야합니까? – pocorschi

답변

0

다른 스레드 (예 : BroadcastReceiver를 호출하는 스레드)에서 UI를 업데이트 할 수 없습니다. 간단한 AsyncTask 클래스를 사용해야합니다. 이 작업은 완료하는 데 오랜 시간이 걸리는 작업을 수행 한 후에 UI를 업데이트하는 목적으로 만 만들어졌습니다. AsyncTask에 UI 스레드가 실행되는 것을 차단하지 않기 때문에 인터넷에서 자원을 요청하는 것과 같은 것들을 넣는 것이 좋습니다. 좋은 부작용은 끝나면 주 프로그램에서 함수를 호출하고이 호출은 UI 스레드에서 수행됩니다.