2011-08-22 6 views
1

전화의 모든 연락처가 나열되는 MainScreen을 업데이트하는 PIM 수신기를 설정하려고합니다.VerticalFieldManager에서 행 삭제

내가 뭐하는 거지 것은 다음

  • 내가 청취하는 PIMListListener을 만들어 내가 ContactsForm 내가 전화 만 형태가 RuntimeStore

  • 로 저장하고 1 회로드하고 주소록에서 발생할 모든 변경 사항.

  • 연락처가 추가
  • , 나는 성공적으로

    연락처를 제거
  • contactsForm에 추가하고, 나는 그것을 삭제 큰 문제에 직면하고있다 : S를!

이 예외가 발생합니다. "IllegalArgumentException"; 이 예외의 텍스트는 다음과 같습니다. UiEngine은 이벤트 잠금을 유지하지 않고 액세스됩니다. 나는 그러한 오류를 알고 있으며 그것을 해결하는 방법을 알고 있습니다. 그래서 다음 코드를 사용했습니다 :

UiApplication.getUiApplication().invokeLater(new Runnable() { public void run() { 
    synchronized(UiApplication.getEventLock()) { 
    uiContacts.vm.delete(uiContacts.vm.getField(j)); 
    } 
}}); 

이렇게하면 문제가 해결됩니다. 그러나 나는이 오류를 반복해서 계속해서 겪고있다. 이 문제를 해결하는 방법?

답변

4

리스너는 PIMListListener와 마찬가지로 UiApplication과 동일한 응용 프로그램 컨텍스트에서 콜백을 수신하지 않습니다. 따라서 코드에서 UiApplication.getUiApplication()은 예상대로 작동하지 않습니다.

콜백 (아마의 UiApplication 초기화시)를 도달 할 수있는 장소에 UiApplication에 대한 참조를 저장 한 다음 myUiApp가에 대한 참조입니다 myUiApp.invokeLater(...)UiApplication.getUiApplication().invokeLater(...)을 대체하는 것입니다 할 수있는 가장 좋은 것은 이전에 저장 한 UiApplication.

+0

감사합니다. :) –

+0

물론, 문제 없습니다. –