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作成中です。");
}
});
以下の様な画面更新を、しています。
あぁ〜画像には無いですが
一時ポップメッセージも表示してます
ふむ
もう少し簡単に画面更新だけでも
出来ると楽なんだがぁ
AsyncTaskも調べてみるかぁ
投稿者:秀at 08:55| さんでープログラム(Android編) | コメント(0) | トラックバック(0)