백그라운드 업로드 프로세스의 업데이트 상태를 보여주는 팝업 화면을 사용하고 있습니다. 중간에 업로드를 취소하고 싶습니다. 나는 팝업 화면이나 장치의 물리적 인 backbutton에 버튼을 추가하여이 작업을 수행하려고합니다. 그러나 생성 된 이벤트 중 아무 것도 앱에서 발견하지 못하는 것 같습니다. 여기PopUpScreen Blackberry에서 이벤트 차단하기
내가이 줄 afther 나는이
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
//.... do other stuff I wanted done...
backUpThread = Thread.currentThread();
uploadItems();
}
});
그러나 만약 같은 스레드에서 실제 업로드 프로세스를 호출하고 팝업 화면을 생성하고
DialogFieldManager manager = new DialogFieldManager();
//DialogFieldManager manager = (DialogFieldManager)getDelegate();
statusUpdate = new LabelField("Please Wait...");
manager.addCustomField(statusUpdate);
_gaugeField = new GaugeField("", 0, 100, 0, GaugeField.PERCENT);
manager.addCustomField(_gaugeField);
cncl_Btn = new ButtonField("Cancel",ButtonField.CONSUME_CLICK | ButtonField.FIELD_HCENTER | ButtonField.NEVER_DIRTY);
manager.addCustomField(cncl_Btn);
cancelFlag = 0;
cncl_Btn.setChangeListener(new FieldChangeListener()
{
public void fieldChanged(Field field, int context) {
// Auto-generated method stub
UiApplication.getUiApplication().invokeLater(new Runnable()
{
public void run()
{
cancelFlag = 1;
//onClose();//as this method exited from application
// close();//this method gave me IllegalStateException
}
});
}
});
//BackUpScreen.this.addMenuItem(_viewItem);
popup = new PopupScreen(manager);
UiApplication.getUiApplication().pushScreen(popup);
곧 사용자 티셔츠를 표시하고 어떻게 팝업 화면에서 응답하지 않는 취소 버튼을 누릅니다. 나는 button의 fieldchange listener method 안에 breakpoint를 추가하여 이것을 검사했다.
블랙 베리에서 어떻게 할 수 있습니까?
답변 해 주셔서 감사합니다. 어떻게하면 제대로 할 수 있습니까? – Zach
이미 프로그램에 스레드가있는 것 같기 때문에 Java 및 BlackBerry의 스레딩에 익숙하다고 가정합니다. 모든 차단 기능을 이벤트 스레드가 아닌 스레드로 이동하면됩니다. 프로그램 논리와 어떻게 인터페이스하는지는 프로그램에 따라 다릅니다. – Richard