다이얼로그 dismiss 하게 될 경우 , 에러 타입이 java.lang.IllegalArgumentException으로 앱이 죽게 되는데
7.0 버전을 탑재하고 나온 핸드폰에서 계속 발생하네요..ㅠㅠ
원인 아시는분 계신가요..?
정확한 원인은 모르겠구 갤럭시노트7 에서 다이알로그에 추가한 spinner를 클릭 시 선택된 내용을 수행 시킨 후
다이알로그를 dismiss 시키니 말씀하신 오류가 나와 애먹은 적이 있긴 했습니다.
종료 타이밍 문제인듯 한데, 소스를 분석하지 않는 이상 알 방법이 없었구,
저의 경우 별도 다이알로그 모듈이라 타이밍 오류를 수정하기 위해 별도 핸들러를 추가하긴 부담이라.
간단히 아래와 같이 CountDownTimer 를 호출하는 방식으로 우회했습니다.
CountDownTimer mCountDownTimer = new CountDownTimer(500, 500) {
public void onFinish() {
dismiss();
}
public void onTick(long millisUntilFinished) { }
};
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
mCountDownTimer.cancel(); // 기존 타이머 종료
// 아이템 선택에 대한 처리
mCountDownTimer.start(); // 신규 타이머 돌려서, 다이알로그 종료
로그인 유지
정확한 원인은 모르겠구 갤럭시노트7 에서 다이알로그에 추가한 spinner를 클릭 시 선택된 내용을 수행 시킨 후
다이알로그를 dismiss 시키니 말씀하신 오류가 나와 애먹은 적이 있긴 했습니다.
종료 타이밍 문제인듯 한데, 소스를 분석하지 않는 이상 알 방법이 없었구,
저의 경우 별도 다이알로그 모듈이라 타이밍 오류를 수정하기 위해 별도 핸들러를 추가하긴 부담이라.
간단히 아래와 같이 CountDownTimer 를 호출하는 방식으로 우회했습니다.
CountDownTimer mCountDownTimer = new CountDownTimer(500, 500) {
public void onFinish() {
dismiss();
}
public void onTick(long millisUntilFinished) { }
};
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
mCountDownTimer.cancel(); // 기존 타이머 종료
// 아이템 선택에 대한 처리
mCountDownTimer.start(); // 신규 타이머 돌려서, 다이알로그 종료
}