안드로이드 개발 질문/답변
(글 수 45,052)
그 오래 걸리는 작업을 X라고 하면,
A 액티비티와 B액티비티가 있다고 하죵.
A액티비티에서 버튼을 누르면 B액티비티가 실행되고, 작업 X는 B액티비티의 OnCreate() 함수에 있습니다.
X 작업이 한 2초 정도 걸리기 때문에 프로그래스 바를 보여주려고 하는데,
X 작업이 B의 OnCreate에서 일어나는 작업인데 A 액티비티에서 버튼을 누르고 난 후에 B로 넘어가기 전에 화면이 멈춰 있습니다.
왜 이럴까요...?ㅠㅠ
그러니까,,
A액티비티 -> 버튼 클릭 -> X작업 진행중.,,(2초정도) -> B 액티비티 화면이 켜짐
이렇게 됩니다. 그래서 프로그래스 바를 어디서 보이게 해야할지 잘 모르겠어요 ㅠ
도와 주세요 ㅠㅠ
P.S. OnCreate말고 OnResume에서 X작업을 하도록 하는게 도움이 될까요?
2013.01.07 00:19:36
UI에서 작업하면 당연히 멈추죠.
2초간 작업하는걸 onCreate에 집어넣으면 2초동안 화면은 멈춥니다.
2초니 별상관없겠지만 다운로드 하는로직을 main ui(oncreate등)에 집어넣으면 다운로드 끝날때까지 화면이 멈추고 아무것도못하겠죠.
안드로이드, 자바의 기본중에 기본입니다. UI에서 작업하지 마시고 delay나 쓰레드를 쓰세요.
간단하게 B액티비티로 넘어갈때 onCreate에서 바로 프로그레스바 띄우고 handler.postDelay등과같은 딜레이나, thread를 써서 돌리면 자연스럽게 돌아갈겁니다.