編輯:關於Android編程
異常信息:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.synology.synologycloud/com.synology.synologycloud.MainActivity}: android.os.NetworkOnMainThreadException
第一次看到這異常,字面意思是說:在主線程中的網絡異常。然後我就去了解了下這個異常,先看看官方的說明
public classThe exception that is thrown when an application attempts to perform a networking operation on its main thread.
This is only thrown for applications targeting the Honeycomb SDK or higher. Applications targeting earlier SDK versions are allowed to do networking on their main event loop threads, but it's heavily discouraged. See the document Designing for Responsiveness.
Also see StrictMode
.
所以get請求不能在主UI線程中發起,我的解決辦法是另外開一個線程,方法如下:
//android中不能再主線程中訪問網絡資源
new Thread(new Runnable(){
@Override
public void run() {
try {
getOauthToken();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
一 布局 如圖: 二 代碼 private Button button; private Handler handler;
前言在我們開始之前,希望您能最好已經滿足以下條件: 1、有一份編譯後的Android源碼(親自動手實踐才會有更深入的理解)
前言Android開發中我們或多或少都會接觸到數據庫。Android中提供了一個占用內存極小的關系型數據庫-SQLite。雖然Android系統中提供了許多操作SQLit
今天學習了一下增量更新,這個技術已經出現很長時間了,但是現實中,估計只有大廠才利用了這一技術在做產品!國內有些第三方服務平台,像友盟提供自動更新的服務,也是用的增量方式!