こものAndroidメモ

Androidアプリの開発メモブログ!!

初期読み込み時のサンプル —

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: 画面関連



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です