2016-05-24 2 views
-6

enter image description here非同期アンドロイドでメーカー

こんにちは皆、私は非同期を使用してAndroidのメーカーにインターネットから画像を挿入しようとしました。しかし、何らかの問題が発生したようで、runOnUIThreadを呼び出してAsyncの機能を有効にすることはできません。どうすれば修正できますか?どうもありがとうございます。

+3

コードを画像から質問本体に移動してください –

+0

hinh.setImageBitmap(Bmp)を移動する必要があります。 onPostExecute()メソッドへの行。 AsyncTask内でonPostExecute()をオーバーライドします。 –

答えて

1

なぜあなたはonCreate()メソッド内でそのrunOnUiThread()を使用しますか? onCreate()はUIスレッドのみで呼び出されます。 onCreate()メソッド内でrunOnUiThread()を呼び出す方法はありません。

他の場所にしたい場合は、その方法は小文字で始まります。だから、Capital 'R'の代わりにsmall 'r'をタイプしてください。コードの下

用途:

runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 

     } 
    }); 

そして、あなたは(doInBackground内で任意のUI関連のコードを実装するべきではありません)。 doInBackground()の完了後にUIを更新する場合は、onPostExecute()内にこれらのコード行を追加します。

0

runOnUIThreadAsyncTaskには必要ありません。 UIスレッド上

private class LoadhinhtuInternet extends AsyncTask<String, Integer, Bitmap> { 

     @Override 
     protected Bitmap doInBackground(String... params) { 
      InputStream stream = null; 
      try { 
       URL url = new URL(params[0]); 
       stream = url.openConnection().getInputStream(); 
       return BitmapFactory.decodeStream(stream); 
      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } finally { 
       if (stream != null) { 
        try { 
         stream.close(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 
       } 
      } 

      return null; 
     } 

     @Override 
     protected void onPostExecute(Bitmap bitmap) { 
      super.onPostExecute(bitmap); 
      if (bitmap != null) { 
       hinh.setImageBitmap(bitmap); 
      } 
     } 
    } 

AsyncTaskonPostExecute実行されます。

関連する問題