public void onCreate(Bundle savedInstanceState) { // 詳見StrictMode文檔 StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads() .detectDiskWrites() .detectNetwork() // or .detectAll() for all detectable problems .penaltyLog() .build()); StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder() .detectLeakedSqlLiteObjects() .detectLeakedClosableObjects() .penaltyLog() .penaltyDeath() .build()); super.onCreate(savedInstanceState); setContentView(R.layout.main); InitDialog(); }
在android 2.3上設計的下載程式,在android 4.0上運行時報android.os.NetworkOnMainThreadException異常,原來在4.0中,訪問網路不能在主程式中進行,有兩個方法可以解決,一個是在主程式中增加:如上 (我是在使用ftpClient.connect(string, int)時出錯)。
另外一種方法是啟動線程執行下載任務(沒試過):
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 啟動線程執行下載任務 new Thread(downloadRun).start(); } /** * 下載線程 */ Runnable downloadRun = new Runnable(){@Override public void run() { // TODO Auto-generated method stub updateListView(); }};
轉:http://blog.csdn.net/baima1234/article/details/7550659