Получить контекст в абстрактном, неактивном классе
Я пытаюсь построить свою абстрактную реализацию AsyncTask, и я хотел бы вставить пользовательский ProgressDialog. Как я могу получить контекст вне класса деятельности?
abstract public class DataPoller extends AsyncTask<Void, Void, Void> {
Context mContext = getApplicationContext();
ProgressDialog dialog = new ProgressDialog(mContext);
@Override
protected void onPreExecute() {
dialog.setMessage("Polling data...");
dialog.show();
}
@Override
protected void onPostExecute(Void unused) {
if ( dialog.isShowing() ) {
dialog.dismiss();
}
}
@Override
protected Void doInBackground(Void... params) {
int tmp=0;
for (int ii = 0; ii<1000; ii ++) {
for (int jj = 0; jj<1000; jj ++) {
tmp = ( tmp + 3 ) % 167;
}
}
return null;
}
}
1 ответ
Решение
Вы можете передать это в конструктор:
abstract public class DataPoller extends AsyncTask<Void, Void, Void> {
...
Context mContext;
...
DataPoller(Context context){
super();
this.mContext = context;
}
...
}