0
誰かがAsyncTaskを@Backgroundと@UiThreadに変更するのに少し助けてくれますか? どうすればいいですか?何を削除すればよいですか? onPostとonPreはUiThreadに変換する必要がありますか? 私はアドバイスに非常に感謝しますAsyncTaskを@backgroundと@UiThreadに変更する方法
ここに私のコードの一部です。
@Click
void button1(View view)
{
ReadPic rp = new ReadPic();
rp.execute();
}
class ReadPic extends AsyncTask<Void, Void, Void>
{
ProgressBar progressBar;
boolean sukces = true;
public ReadPic()
{
progressBar = new ProgressBar(getBaseContext());
}
@Override
protected Void doInBackground(Void... arg0)
{
URL u;
InputStream is;
try
{
u = new URL(adres);
is = u.openStream();
Bitmap temp = BitmapFactory.decodeStream(is);
bmp=temp.copy(Bitmap.Config.ARGB_8888, true);
}
catch(Exception e)
{
sukces = false;
}
return null;
}
@Override
protected void onPreExecute()
{
if(progressBar !=null)
progressBar.setVisibility(ProgressBar.VISIBLE);
button1.setEnabled(false);
if(progressBar !=null)
progressBar.setVisibility(ProgressBar.INVISIBLE);
textView1.setText("DOWNLOADING...");
super.onPreExecute();
}
@Override
protected void onPostExecute(Void result)
{
if(sukces)
{
imageView.setImageBitmap(bmp);
imageView1.setImageBitmap(bmp);
imageView2.setImageBitmap(bmp);
imageView3.setImageBitmap(bmp);
imageView4.setImageBitmap(bmp);
imageView5.setImageBitmap(bmp);
imageView6.setImageBitmap(bmp);
imageView7.setImageBitmap(bmp);
imageView8.setImageBitmap(bmp);
textView1.setText("Downloading finished");
}
else
{
textView1.setText("Error when downloading");
}
button1.setEnabled(true);
progressBar.setVisibility(ProgressBar.INVISIBLE);
super.onPostExecute(result);
}
どうもありがとう、正常に動作しますが、あなたはミスを犯したonBackgroundError onBackgroundSuccessがある場所にする必要があります。とにかく、もう一度ありがとう:-) – Gorthez
あなたは正しいです、私はコピー貼り付けエラーを起こしました。 :) – WonderCsabo