2017-04-19 20 views
0

は、これは私が、私は、サーバー、 からのデータを受信するまでprogressdialogを示し、私が得たとき(items.size>が0の場合)、progressdialogが解任され、サーバーに起因したい私のコードrunonuiThread UIはループ

です。 しかし、私はこのコードを実行すると、サーバーからデータを受け取りますが、runonuiThreadではまだprogressdialogを実行しています。

List<ServerData> items = new ArrayList(); 
progressdialog.show();  

    Thread thread = new Thread(new Runnable() { 
       @Override 
       public void run() { 

        HttpRequest... 
        Gson gson = new Gson(); 
        Type type = new TypeToken<List<ServerData>>(){}.getType(); 
        items = gson.fromJson(String,type); 

        Log.d("ThreadInfo","" + items.size); 

        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          if(items.size > 0){ 
           progressdialog.dismiss(); 
          } 
         } 
        }); 
       } 
      }); 

私はThreadInfoにをログに記録する場合、それはitems.size値が1 で送信しますが、それでもprogressdialogが消え実行していません。

質問items.sizeが0ではない場合、progressdialogを却下する方法はありますか?

ご意見がありましたら、お手伝いください。

+0

のようにコードを変更する必要があります。あなたがrunonUIスレッドを書く必要があるということを意味しますif(items.size> 0){} –

+0

@Rajeshあなたはrunonuithreadを意味しませんか?しかし、私はrunonuithreadについて知っています。私はあなたがそれを変更するとき、それで、progressyialogを入れます。 –

+0

なぜあなたは単純な非同期タスクを使用していませんか? – Shmuel

答えて

0

あなたはrunonUIthread前に、あなたの場合は条件を書き留め、この

if (items.size > 0) { 


    runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
           progressdialog.dismiss(); 
         } 
        }); 

} 
+0

ご協力いただきありがとうございます –

関連する問題