2012-04-03 14 views
1

Android搭載のラジオプレーヤー(shoutcastストリームを使用)を実装しようとしています。私がしたいのは、ラジオストリームがプレーヤーにロードされている間、UIは回転するホイールのアニメーションを表示することです。ロードが成功すると(曲の再生が始まるとすぐに)アニメーションが消えます。AndroidのProgressDialogが表示されない(不正なスレッド処理ですか?)

ここに私が使用しているコードがあります。

PlayStopStreamingButton.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
    Thread initializer = new Thread(new Runnable() { 

     @Override 
     public void run() { 
     Looper.myLooper(); 
     Looper.prepare(); 
     progressDialog = ProgressDialog.show(RadioPlayerActivity.this, "", "Selecting Radio Station", 
      true); 
     JukefoxApplication.getHandler().post(new Runnable() { 

      @Override 
      public void run() { 
      radioPlayerEventListener.onPlayStopStreamingButtonClicked(); 
      progressDialog.dismiss(); 
      } 
     }); 
     } 
    }); 
    initializer.start(); 

    } 
}); 

私は回転アニメーションを取得しません。私は間違いがスレッドの誤った取り扱いにあることはほとんど確信しています。もし誰かが正しい方法で出かけることができたら、私は感謝しています。

EDIT、これは動作しているようです:

PlayStopStreamingButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      progressDialog = ProgressDialog.show(RadioPlayerActivity.this, "", "Selecting Radio Station", true); 

      Thread initializer = new Thread(new Runnable() { 

       @Override 
       public void run() { 
        radioPlayerEventListener.onPlayStopStreamingButtonClicked(); 
        progressDialog.dismiss(); 
       } 
      }); 
      initializer.start(); 

     } 
    }); 
+0

私はあなたが非常に速く、それを却下と思うし、なぜそれがありますそれを見ないでください。 –

答えて

0

あなたは以下を参照してください、UIスレッド上で進行状況ダイアログを表示する必要があります。

PlayStopStreamingButton.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
    Thread initializer = new Thread(new Runnable() { 

     @Override 
     public void run() { 
     Looper.myLooper(); 
     Looper.prepare(); 

     RadioPlayerActivity.this.runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       progressDialog = ProgressDialog.show(RadioPlayerActivity.this, 
            "", "Selecting Radio Station", true); 
      } 
     }); 

     JukefoxApplication.getHandler().post(new Runnable() { 

      @Override 
      public void run() { 
      radioPlayerEventListener.onPlayStopStreamingButtonClicked(); 

      RadioPlayerActivity.this.runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
          progressDialog.dismiss(); 
       } 
      }); 

     } 
    }); 
    initializer.start(); 

    } 
}); 
+0

ありがとう、私はrunOnUiThreadビットを認識していませんでした。しかし、一方で、私はまた、解決策を実装しています(別の答えとして、何か問題があれば教えてください)。あなたの時間と努力に感謝します。 – rahulthewall

関連する問題