初期読み込み時のサンプル —
Activityの読み込み時に「読み込み中…」というダイアログを表示するサンプルです。
スレッドを走らせて、裏で通信処理などの何らかの処理が走るのことを想定しています。
何らかの処理の代わりに、今回は5秒のスリープをいれます。
スレッドが終了したら、「読み込み中…」のダイアログを非表示にします。
import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; import android.os.Message; public class WaitActivity extends Activity { private final int MSG_INIT_SUCCESS = 0; private ProgressDialog m_ProgressDialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /** ウェイト表示のダイアログ. */ m_ProgressDialog = new ProgressDialog(this); m_ProgressDialog.setTitle(""); m_ProgressDialog.setMessage("読み込み中…"); m_ProgressDialog.setIndeterminate(false); m_ProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); m_ProgressDialog.show(); /** 画面初期化用のスレッドを起動. */ Thread thread = new Thread(new Runnable(){ public void run() { startInitWaitTH(); } }); thread.start(); } /** 初期のスレッド処理. */ private void startInitWaitTH(){ /** ダミー処理 5秒待つ. */ try { Thread.sleep(5000); } catch (Exception e){ } /** 初期化成功のメッセージを送ってる .*/ if(m_handler != null){ m_handler.sendEmptyMessage(MSG_INIT_SUCCESS); } } /** スレッドからメッセージ取得時の処理. */ private Handler m_handler = new Handler() { public void handleMessage(Message msg) { if(msg.what == MSG_INIT_SUCCESS){ /** 初期描画処理を行う. */ initViewProc(); } } }; /** 初期描画処理. */ private void initViewProc(){ if(m_ProgressDialog != null) { m_ProgressDialog.dismiss(); } } /** 破棄時の処理. */ @Override public void onDestroy() { super.onDestroy(); if(m_handler != null) { m_handler = null; } m_ProgressDialog = null; } }
Categorised as: 画面関連
コメントを残す