Kelas Turunan AsyncTask Android Versi icaksama.COM

Kelas Turunan AsynTask Android – Sebagai Programmer Android, seringkali kita di tuntut untuk membuat aplikasi yang salah satu fiturnya dapat terkoneksi ke internet, entah untuk pengiriman data atau pengambilan data. Android adalah salah satu platform yang mendukung fitur ini, namun dalam versi android 4 ke bawah dan 4 ke atas teknik dalam koneksi internet mengalami perubahan dimana versi android 4 ke atas harus menggunakan kelas turunan Asynctask android sehingga prosesnya dapat berjalan di belakang layar tanpa mengganggu aktivitas pengguna. Dalam artikel ini, saya akan menunjukan satu kelas turunan Asynctask android yang sering saya gunakan dalam membuat fitur yang dapat terkoneksi ke internet.

Kelas ini telah saya modifikasi sehingga dapat digunakan oleh kelas lain. Terdapat 2 file yang saya gunakan, yang pertama adalah kelas utama yang menuruni kelas Asynctask dan kelas interface yang menangkap respon dari kelas utama sehingga respon tersebut dapat di akses oleh kelas si pemanggil. Sebelum kamu membuat kelas ini silahkan buat terlebih dahulu kelas CustomHttpClient pada artikel Membuat Kelas HTTP GET dan POST di Android karena kelas tersebut digunakan untuk melakukan pengiriman dengan metode GET atau POST.

kelas turunan asynctask android versi icaksama

Jadikan kelas CustomHttpClient.java dalam satu package dengan kelas yang akan kita buat. Buat 2 file .java dengan nama AsyncResponse.java dan GetJSON.java. Berikut source programnya :

AsyncResponse.java

public interface AsyncResponse {
  void processFinish(String output);
}

GetJSON.java

import java.io.IOException;
import java.util.ArrayList;

import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;

import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;

public class GetJSON extends AsyncTask<String, Void, String> {
  private ProgressDialog dialog;
  private String Content;
  private String Error = null;
  private ArrayList<NameValuePair> data;
  private Context context;
  private String url;
  
  public AsyncResponse delegate = null;
  
  public GetJSON(Context context, String url, ArrayList<NameValuePair> data) {
    dialog = new ProgressDialog(context);
    dialog.setCancelable(false);
    this.data = data;
    this.context = context;
    this.url = url;
  }
  
  @Override
  protected String doInBackground(String... params) {
    try {
      Content = CustomHttpClient.executeHttpPost(url, data);
    } catch (ClientProtocolException e) {
      Error = e.getMessage();
      cancel(true);
    } catch (IOException e) {
      Error = e.getMessage();
      cancel(true);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return Content;
  }
  
  @Override
  protected void onPreExecute() {
    super.onPreExecute();
    this.dialog.setMessage("Loading Data..");
    this.dialog.show();
  }
  
  @Override
  protected void onPostExecute(String result) {
    this.dialog.dismiss();
    if (Error != null) {
      Toast.makeText(context, "Error Connection Internet",
      Toast.LENGTH_LONG).show();
    } else {
      delegate.processFinish(result);
    }
  }
}

 

Kelas ini akan selalu saya manfaatkan dalam tutorial saya yang terhubung ke internet, jadi simpan baik-baik yaa 🙂
Demikian tutorial kali ini. Semoga bermanfaat 🙂

Comments (3)

Salam icaksama.com – mas saiful saya senang sekali dengan tuturial yang ada di sini khususnya mengenai android. dan benar2 sangat bermanfaat. apalagi mengenai asynctask yang sering saya gunakan untuk berkomunikasi dengan web/internet

terima kasih mas yudi 🙂

Apakah Class ini bisa digunakan untuk semua Versi Android, khususnya untuk API 22 dan 23.
Mohon Tanggapan nya.
Makasih

Leave a comment