0
我的應用程序從互聯網下載一些文件開始。我想在下載時顯示一行文字「下載文件」。問題是,視圖似乎並沒有更新,直到所有代碼都運行完畢,所以textview沒有顯示出來。我試着在文本視圖的代碼和下載文件的代碼之間的mLayoutView對象上運行invalidate和postInvalidate,但似乎沒有效果。我錯過了什麼?Android - 在運行更多代碼之前渲染更改以查看代碼
我的應用程序從互聯網下載一些文件開始。我想在下載時顯示一行文字「下載文件」。問題是,視圖似乎並沒有更新,直到所有代碼都運行完畢,所以textview沒有顯示出來。我試着在文本視圖的代碼和下載文件的代碼之間的mLayoutView對象上運行invalidate和postInvalidate,但似乎沒有效果。我錯過了什麼?Android - 在運行更多代碼之前渲染更改以查看代碼
您需要在單獨的線程上進行下載。這是強制性的,原因如下:如果您的下載代碼需要5秒以上,Android會將您的應用程序報告爲無響應,並且會崩潰,並且您將無法更新用戶界面
有幾十個關於如何做到這一點的例子,你可以使用的AsyncTask,也是一個Thread對象,或者一個Runnable ... 請參閱此鏈接一個很好的例子:
Download a file with Android, and showing the progress in a ProgressDialog
你在一個單獨的線程下載? – Merlevede
同一線程。這只是我的第一個合法的android應用程序,我不太清楚線程是如何工作的。 –