2012-04-20 9 views
7

私はアンドロイドでアニメーションの読み込みを作成する方法についていくつかの情報を探しています。このアニメーションを作成して、このアニメーションを1つのスレッドで呼び出すことができ、他のスレッドで終了することは可能ですか?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:Looper.prepare(呼び出されていないスレッド内でハンドラを作成することはできません) – Streetboy

+1

あなたはスタート前にスレッドをProgreeDialogを開始し、進行状況ダイアログをdimiss必要がありますエンドスレッド..から! – Dinesh

+0

AsyncTaskを使用している場合、どのメソッドで私はatarし、ProgressDialogを終了する必要がありますか? – Streetboy

2

UIスレッド以外のスレッドからProgressDialogを開始/終了することはできません。 AsyncTaskメソッドonPreExecute onPostExecuteを使用するのが最も簡単です。しかし、私はそれに注意するでしょう。あなたは非同期タスク(ユーザーが向きを変えるか、画面を回転させる)から対話への参照を失いたくない

  1. 。だからWeakReferenceをダイアログに保存したい場合
  2. 重大な読み込みをしているなら、サービス用のサービスコールを(ブロードキャストのように)リスンしてダイアログをコントロールすることをお勧めします。これにより、バックグラウンド作業からアクティビティライフサイクルを分離することもできます。
+0

弱参照はどのように使用しますか? AsyncタスクでProgressDialogを使用すると、例外(IllegalArgumentException)が発生します。 –

関連する問題