これを試してください:
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
}
}
このAsyncTaskは、次の行で呼び出すことができます-アクティビティに参加していると仮定します:
new FetchData().execute(this);
AsyncTaskの減速を変更できない場合は、静的変数を使用してみることができます。ただし、AsyncTaskの減速ほど効率的できれいではありません。これを試してください:
Class myStatic{
private static Context mContext;
static public void setContext(Context c);
mContext = c;
}
static public Context getContext(){
return mContext;
}
}
メインコードで、AsyncTaskを呼び出す前に、次のように呼び出します。
myStatic.setContext(this);
AsyncTaskのdoInBackgroundメソッドに、次を追加します:
Context myContext = myStatic.getContext();