初期読み込み時のサンプル —
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: 画面関連
コメントを残す