Mengatasi android.os.NetworkOnMainThreadException exception

Tutorial tentang masalah ini sudah banyak sekali di internet, alasan saya menulisnya kembali adalah sebagai catatan dalam belajar saya dan mengingat kembali. Oh iya, tulisan ini juga merupakan catatan pertama saya tentang Android :) selama menggeluti dunia pemrograman mobile.

Baik, masalah ini terjadi hanya pada Android 3.0 (Honeycomb) dan versi keatasnya hal tersebut disebabkan karena jaringan diakses melalui antarmuka pengguna (user interface thread).

Misalnya pada kode berikut bila dijalankan pada Honeycomb dan keatasnya akan mengakibatkan exception NetworkOnMainThreadException:

public void connect() { try { DefaultHttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet("http://www.google.com"); HttpResponse response = client.execute(request); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
}

Untuk mengatasi cukup mudah tinggal menambahkan StrictMode sehingga menjadi kode berikut:

public void connect() { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); try { DefaultHttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet("http://www.google.com"); HttpResponse response = client.execute(request); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
}

Tetapi cara di atas tidak direkomendasikan, cara yang lebih direkomendasikan adalah dengan menggunakan class AsyncTask sebagai berikut:

public class Connection extends AsyncTask<void, Void, Void> { @Override protected Void doInBackground(Void... arg0) { try { DefaultHttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet("http://www.google.com"); HttpResponse response = client.execute(request); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } }

Selanjutnya untuk memanggilnya tinggal buat kode new Connection().execute();.

Oke sekian dulu ya catatan belajar kali ini, kalau masih belum mengerti silahkan tanya di bagian komentar di bawah. Supaya mendapat notifikasi jika jawabannya dibalas silahkan centang pilihan Beritahu saya balasan komentar lewat surat elektronik sebelum mengirim komentar. Semoga bermanfaat buat sahabat CB (Catatan Belajar) dan jangan lupa berikan juga +1 Google sahabat di tulisan ini

Catatan Belajar juga hadir di Facebook, like kami ya klik tombol berikut:

 
Signature :

No copy paste content please…. If you want do that, please include the live link to original source. Original Post by catatanbelajar.com, written by Ivo Idham Perdameian, +IvoIdhamPerdameian.

Posting Mengatasi android.os.NetworkOnMainThreadException exception ditampilkan lebih awal di Catatan Belajar.

Baca juga yang ini Lhooo .....

  • Cara Login Ke Client Area Cara Login Ke Client Area Hi Sobat iWe, berikut ini kami informasikan Cara Login Ke Client Area IndoWebsite. Ada beberapa cara untuk masuk ke halaman login client area : Anda bisa mengakses Url : https://client.indowebsite.net/clientarea.php Setelah mengklik link diatas anda... The post […]
  • Cara Memperbaiki Error Establishing A Database Connection WordPress Cara Memperbaiki Error Establishing A Database Connection WordPress – Jika Anda seorang pengguna wordpress maka tentu Anda pernah melihat Error Establishing A Database Connection pada website Anda atau website orang lain. Inti dari error tersebut adalah terjadi kegagalan pada […]
  • Reset Password Opencart Melalui Softaculous Reset password Opencart bisa di lakukan dengan berbagai cara .Berikut ini adalah cara mudah reset password Opencart yaitu melalui softaculous .Namun hal ini hanya bisa di lakukan pada Opencart yang di install melalui Softaculous .Jika bukan merupakan hasil install melalui... The post […]
  • Kelemahan Bisnis Dropship Bisnis dropship seakan menjadi bisnis online pertama yang patut dicoba buat orang yang ingin mendulang rupiah dari Internet . Apa itu model bisnis dropship ? pasti sudah tahu kan ? tidak perlu dijelaskan intinya kita menjual barang secara online tanpa perlu punya stok barang sendiri di […]
  • [ASK] Ada yang tau cara memperbaiki terjadi kerusakan WordPress? Kasusnya saya mengalami Error Establishing a Database Connection In WordPress, saya mencoba perbaikin dengan menghubungin bagian hosting untuk mengecek kenapa seperti ini, lalu pihak hosting memperbaikinya dan akhirnya jalan lagi tapi setelah selang beberapa menit saya mau posting […]
  • 5 Tips Ampuh untuk Java Programmers Ada artikel menarik nih ane share aja ye.Tips 1: Hindari pembuatan object yg tidak terpakai (lakukan Initialization biasa).Pembuatan object di Java ialah operasi yg sangat menyita memory dan juga performa. Makanya, pergunakan pembuatan object hanya ketika perlu saja. Code: public […]

Tinggalkan Balasan

Alamat surel Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Gambar CAPTCHA

*