在android中下載文件,寫好下載文件的代碼後須要配置相應的權限java
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>android
按原則來講這樣就應該能夠正常下載了,可是在android4.2 模擬器上運行(貌似4.0以上的模擬器都有這個問題) 獲取流getInputStream時老是報錯。百思不得其解,經百度得知添加一行代碼便可,至於爲何還要再之後的學習中慢慢了解。網絡
在這裏先作個記錄。學習
在.java文件中添加ui
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());
便可。spa
PS:剛從羣裏高手得知,是由於我聯網的代碼寫在了主線程裏,從android 4.0之後就不容許這樣操做了,由於若是在主線程裏聯網,若是網絡很差那麼整個程序就卡死在那裏了。因此android4.0之後對要聯網的代碼必須在新開一個線程來作。線程