2012-04-20 9 views
7

안드로이드에서 로딩 애니메이션을 만드는 방법에 대한 정보를 찾고 있습니다. 하나의 스레드에서이 애니메이션을 호출하고 다른 스레드에서 끝낼 수있는이 애니메이션을 만들 수 있습니까?Android 로딩 애니메이션

나는이 추구 : 코드

해서 ProgressDialog 아래

enter image description here

답변

18

시도를 보여주는 :

ProgressDialog mDialog = new ProgressDialog(getApplicationContext()); 
       mDialog.setMessage("Loading..."); 
       mDialog.setCancelable(false); 
       mDialog.show(); 

후 코드 아래해서 ProgressDialog를 취소 :

mdialog.dismiss(); 
+0

수 : java.lang.RuntimeException가 : 진행 대화를 시작하기 전에 스레드를 ProgreeDialog를 시작해야합니다 Looper.prepare을 (호출하지 않은 스레드) – Streetboy

+1

내부 핸들러를 만들고 dimiss 수 없습니다 끝 스레드에서 ..! – Dinesh

+0

AsyncTask를 사용하는 경우 어떤 방법으로 atar를 실행하고 ProgressDialog를 종료해야합니까? – Streetboy

2

UI 스레드가 아닌 다른 스레드에서 ProgressDialog를 시작하거나 끝낼 수 없습니다. AsyncTask 메서드 onPreExecute onPostExecute를 사용하는 것이 가장 간단합니다. 그러나 나는 그것에 조심할 것이다.

  1. 비동기 작업 대화 상자 (사용자가 방향을 바꾸거나 화면을 회전)에 대한 참조를 잃고 싶지는 않습니다. 따라서 WeakReference를 대화 상자에 계속 유지하고 싶습니다.
  2. 심각한로드 중일 경우 서비스를 사용하고 브로드 캐스트와 같은 서비스 콜백을 수신 대기하여 대화 상자를 제어합니다. 또한 백그라운드 작업과 활동 라이프 사이클을 분리 할 수 ​​있습니다. 내가이 전화와 비동기 작업에서는
+0

약한 참조는 어떻게 사용합니까? 내 Async 작업에서 ProgressDialog를 사용할 때 예외 (IllegalArgumentException)가 발생합니다. –