アプリ版:「スタンプのみでお礼する」機能のリリースについて

プログレスダイヤログのタイミングについて

現在、Androidアプリ開発にてプログレスダイヤログの表示を行っております。
意図したタイミングでプログレスダイヤログが表示されないので、どなたかご教授いただけませんでしょうか?

■理想の流れ
ボタンを押す

プログレスダイヤログの表示

スリープ処理

プログレスダイヤログを閉じる


■現在の流れ
ボタンを押す

スリープ処理

ダイヤログ表示


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xxx);

//プログレスダイヤログを生成
final ProgressDialog pd;
pd = new ProgressDialog(this);
pd.setMessage("情報を読込んでいます。しばらくお待ち下さい。");
pd.setTitle("Loading……");
pd.setIndeterminate(false);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);

//検索ボタンの呼び出し
Button btn = (Button)findViewById(R.id.Button21);
//検索ボタン押下の処理
btn.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
//プログレスダイヤログを生成
pd.show();

try {
Thread.sleep(10000);//10秒スリープする
} catch (InterruptedException e1) {
e1.printStackTrace();
}

.
.
.
.

A 回答 (1件)

別スレッドで処理させればいいのかな?



http://magpad.jugem.jp/?eid=109

---
Androidは実は全然わからないけれど、
たぶん
『「(onCrick()のような)イベントハンドラ」内での
「なんらかのGUIに対するなんらかの変更」は、
そのイベントハンドラを抜けたあとでないと反映されない』
という「方針」が
採用されてるんじゃない?
(Java Swingなどでは採用されてたはず)

ようするに提示されているこのコードでいえば、
pd.show();
は、「ただちには実行されない」(あとまわしにされる)ってこと。
    • good
    • 0
この回答へのお礼

ご教授ありがとうございます。
kacchannさんの仰るとおり、別スレッドを作ってそこで処理させると理想の流れにする事ができました。

ありがとうございました。

お礼日時:2010/06/18 12:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!