-1
我使用AsyncTask類執行任務並顯示ImageView。 但是我每10秒執行一次這個任務,對於這個我調用相同的任務: onPostExecute()
方法。AsyncTask refresh imageView
這是工作,但imageView刷新10秒後,爲什麼?
這是我的代碼:
@Override
protected void onPostExecute(Void result) {
ProgressBar progress = (ProgressBar) rootView.findViewById(R.id.progress);
progress.setVisibility(View.GONE);
ImageView imageView = (ImageView) rootView.findViewById(R.id.myView);
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
SVG svg;
InputStream is = null;
try {
is = new FileInputStream(mySVG);
svg = SVG.getFromInputStream(is);
Drawable drawable = new PictureDrawable(svg.renderToPicture());
imageView.setImageDrawable(drawable);
} catch (SVGParseException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
imageView.refreshDrawableState();
long start = System.currentTimeMillis();
while ((System.currentTimeMillis() - start) < 10000) {
}
AsyncTask<Object, Integer, Void> t = new Task(rootView).execute();
}
此代碼刷新10秒後的ImageView的,但我會立即刷新,等待10秒,執行其它的任務......
我認爲這不是一個好主意,怎麼當你把一個循環命令在你的代碼,從來沒有打破它,你將鎖定你的代碼在特定的線程中。小心 – 2015-03-03 10:42:08
使用延遲加載。 – 2015-03-03 10:42:36