Probeer dit:
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
}
}
Je kunt deze AsyncTask aanroepen met de volgende regel - ervan uitgaande dat je bezig bent met een activiteit:
new FetchData().execute(this);
als u uw AsyncTask-vertraging niet kunt wijzigen, kunt u proberen een statische variabele te gebruiken - hoewel het niet zo efficiënt en mooi is als AsyncTask-vertraging. Probeer dit:
Class myStatic{
private static Context mContext;
static public void setContext(Context c);
mContext = c;
}
static public Context getContext(){
return mContext;
}
}
en in je hoofdcode, voordat je AsyncTask aanroept, noem dit:
myStatic.setContext(this);
in je doInBackground-methode van je AsyncTask, voeg dit toe:
Context myContext = myStatic.getContext();