<< 前のエントリトップページ次のエントリ >>
2011年09月17日

今更ながらぁプログレス

ふむ今更ながらだがロジックに
プログレスダイヤログ(ProgressDialog)を仕込んでみる

表示されないぃ・・・
と言うより処理の最後に一気に表示されてる??

色々調べてみると朧だが解ってきた
まだ完全に理解した訳じゃないので曖昧だが。。。

androidはメインスレッドだけが
画面更新できる見たいですね

なのでボタン押した時の処理等に
まとめてダイヤログ表示処理と
重い処理を一緒にすると
重い処理が終わるまで
メインスレッドに処理が返って来ないので
処理の最後に一気に表示されている様な形になるのかな多分

そこで
重い処理を別スレッド(以降「Sスレッド」)にして
マルチスレッド化して
メインスレッドにすぐ処理が戻る様にしました。
(今回はRunnableとThreadを使いましたが
AsyncTaskってのも有るみたいだね)

っで
SスレッドからHandlerのpostを使って
メインスレッドへ画面更新等をする感じですねぇ

例として下記の処理で

mHandler.post(new Runnable() {
public void run() {
waitDialog.setMessage("Ver3一時DBの作成中");

Toast.makeText(jp.or.sqliteDBverup.SqliteDBverupActivity.this,
"一時DB作成中です", Toast.LENGTH_LONG).show();

tv.setText("一時DB作成中です。");
}
});

以下の様な画面更新を、しています。

android020

あぁ〜画像には無いですが
一時ポップメッセージも表示してます

ふむ
もう少し簡単に画面更新だけでも
出来ると楽なんだがぁ
AsyncTaskも調べてみるかぁ

投稿者:秀at 08:55| さんでープログラム(Android編) | コメント(0) | トラックバック(0)

◆この記事へのトラックバックURL:

http://control.onair-blog.jp/util/tb.php?us_no=1924&bl_id=1924&et_id=190147

◆この記事へのコメント:

※必須