Coba ini:
private class FetchData extends AsyncTask<Context, Void, Void> {
protected Long doInBackground(Context... c) {
Context myContext = c[0];
// Do your things here....
}
protected void onPostExecute() {
// Insert your post execute code here
}
}
Anda dapat memanggil AsyncTask ini dengan baris berikut - dengan asumsi Anda berada dalam suatu aktivitas:
new FetchData().execute(this);
jika Anda tidak dapat mengubah perlambatan AsyncTask Anda, maka Anda dapat mencoba menggunakan variabel statis - meskipun tidak seefisien dan secantik perlambatan AsyncTask. Coba ini:
Class myStatic{
private static Context mContext;
static public void setContext(Context c);
mContext = c;
}
static public Context getContext(){
return mContext;
}
}
dan dalam kode utama Anda, sebelum Anda memanggil AsyncTask, panggil ini:
myStatic.setContext(this);
dalam metode doInBackground dari AsyncTask Anda, tambahkan ini:
Context myContext = myStatic.getContext();