[英]Progress dialog not showing while loading pictures
我必須將幾張圖片加載到主線程中,並且要在發生這種情況時顯示一個加載對話框,但是以某種方式我無法顯示進度對話框...
我的代碼如下:
private ProgressDialog progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.background);
progress = ProgressDialog.show(this, "",getString(R.string.background_loading), true);
LoadBackgrounds loadB = new LoadBackgrounds();
new Thread(loadB).start();
}
public class LoadBackgrounds implements Runnable {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
loadPictures();
progress.dismiss();
}
});
}
}
必須在runOnUiThread
內部調用loadPictures()
因為它會修改視圖。 那么,為什么在加載圖片時不顯示進度對話框?
我不確定100%,但這是我的猜測:
runOnUiThread()
將該線程與UIThread合並。 loadPictures()
可能會減慢UIThread的速度,這可能是您首先看不到進度對話框,並且在完成加載后便將其關閉的原因。 Skipped X frames! The application may be doing too much work on its main thread.
Skipped X frames! The application may be doing too much work on its main thread.
logcat輸出中的消息。 我的建議取決於您的loadPictures()
方法的實際作用:使用AsyncTask,或者在訪問服務器以獲取圖片時,檢查Volley
或RetroFit
等庫並使用它們獲取數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.