안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드 App 개발중인데요...
특정 appl을 구동중 에러상황이 발생하여
alert 팝업을 띄워주고, Destroy 하고 싶은데,
alert팝업은 보이지 않고 Destroy가 바로 되버립니다.
해결방법으로는 확인팝업을 사용하면 잡고 있을수가 있는데,
확인팝업을 사용하면 안되는 상황입니다.
결론적으로.
현재 Activity에서 특정 에러상황을 감지하여, 사용자에게 Alert팝업으로 보여주고,
자연스럽게 Destroy해주고 싶습니다.
방법이 없을까요?
고수님들 부탁 드립니다.
특정 appl을 구동중 에러상황이 발생하여
alert 팝업을 띄워주고, Destroy 하고 싶은데,
alert팝업은 보이지 않고 Destroy가 바로 되버립니다.
해결방법으로는 확인팝업을 사용하면 잡고 있을수가 있는데,
확인팝업을 사용하면 안되는 상황입니다.
결론적으로.
현재 Activity에서 특정 에러상황을 감지하여, 사용자에게 Alert팝업으로 보여주고,
자연스럽게 Destroy해주고 싶습니다.
방법이 없을까요?
고수님들 부탁 드립니다.
2010.11.09 17:03:00
Dialog 팝업은 팝업에서 해당 메소드의 진행이 중단되는 것이 아닙니다.
그래서 이런 현상이 생기는 것 같네요.
차라리 팝업을 띄우고 확인버튼 클릭시 종료되도록 하는 방안이 어떨까 합니다.
물론 가장 좋은건.. 에러 상황을 해결하는 거지만요
그래서 이런 현상이 생기는 것 같네요.
차라리 팝업을 띄우고 확인버튼 클릭시 종료되도록 하는 방안이 어떨까 합니다.
물론 가장 좋은건.. 에러 상황을 해결하는 거지만요
2010.11.09 17:49:21
안드로이드 에러상황이 아니구요. 어플동작중 정의하고 있는 에러상황이 발생되었을때,
alert팝업을 띄워주고 종료하려고 하는겁니다.
말씀드린대로, 확인팝업을 사용하면 정상적으로 처리되는데,
일반적인 alert팝업(메시지만 보여주는...)을 보여주고 Destroy시키면 그냥 바로 휙.... 종료되어 버린다는겁니다.
일반 팝업을(메시지만 보여주는...) 띄워주고 해당 팝업이 종료되었을때 Destroy되는 방법이 없을까요?
2010.11.09 18:01:15
alert 팝업이 toast를 말씀하시는 것인지요?
아니면 alertDialog를 말씀하시는지요?
toast라면 아래와 같이 핸들러의 postDelayed 로 처리하면 됩니다.
// Handler 선언
final Handler mHandler = new Handler();
// 에러 발생시에 ...
// dialog display
// 직후에 아래 코드 추가
mHandler.postDelayed(new Runnable() {
public void run( ) {
finish( );
}
}, 2000);
위에서 2000은 ms 단위로 toast가 short로 설정됐다면 2000, long으로 설정됐다면 3000으로 설정하면 됩니다.
왜 이렇게 처리해야 하냐면 toast는 display의 시작은 님께서 결정할 수 있으나 중간에 임으로 disappear시키거나 끝나는 timing을 잡아서 그 때 어떠한 처리를 할 수 없기 때문입니다.
다행스럽게도 위에 언급드린대로 short, long 2가지 type으로 2초, 3초로 설정이 돼 있으니까 님께서 2초, 3초 후에 어플을 종료시키면 되는 것입니다.
text만 가진 alertDialog 도 마찬가지로 처리할 수 있겠지요? ^^
도움이 됐기를... ^^
아니면 alertDialog를 말씀하시는지요?
toast라면 아래와 같이 핸들러의 postDelayed 로 처리하면 됩니다.
// Handler 선언
final Handler mHandler = new Handler();
// 에러 발생시에 ...
// dialog display
// 직후에 아래 코드 추가
mHandler.postDelayed(new Runnable() {
public void run( ) {
finish( );
}
}, 2000);
위에서 2000은 ms 단위로 toast가 short로 설정됐다면 2000, long으로 설정됐다면 3000으로 설정하면 됩니다.
왜 이렇게 처리해야 하냐면 toast는 display의 시작은 님께서 결정할 수 있으나 중간에 임으로 disappear시키거나 끝나는 timing을 잡아서 그 때 어떠한 처리를 할 수 없기 때문입니다.
다행스럽게도 위에 언급드린대로 short, long 2가지 type으로 2초, 3초로 설정이 돼 있으니까 님께서 2초, 3초 후에 어플을 종료시키면 되는 것입니다.
text만 가진 alertDialog 도 마찬가지로 처리할 수 있겠지요? ^^
도움이 됐기를... ^^
질문만으로는 이해가 잘 안되네요.
에러 상황이라는 것이 님이 코딩하면서 예측가능한 상황을 말씀하시는 거라면 그것은 이미 에러가 아닌 것이고,
그 경우에는 님이 에러라고 정의한 조건에 해당하는 곳에 alert 팝업을 띄워주면 되겠지요.
님이 예측할 수 없는 exception을 말씀하시는 거라면 try/catch 구문의 catch에 alert 팝업을 띄워주면 될 것이구요.
두 경우 모두 확인 버튼을 누르면 해당 activity를 finish 시키면 될 것입니다.