Я создал три класса, а именно Mainactivity, передающий контекст в класс сервера, охватывающий Asynctask
. Там один класс назвал параметр, который вызывает класс сервера для обновления данных на сервере.Диалог прогресса в Async Задача
Код на Mainactivity для передачи контекста:
Server.setActivityContext(getApplicationContext());
Код для Sever Класс:
public class Server extends AsyncTask<Void, Void, Void> {
static Context mycontext;
public static void setActivityContext(Context receivingcontext) {
mycontext = receivingcontext;
}
Dialog dialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = ProgressDialog.show(mycontext, "Updating ..", "Please wait......");
}
@Override
protected Void doInBackground(Void... params) {
//Background task
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
dialog.dismiss();
}
}
Я получаю сообщение об ошибке на progressdialog
при вызове этого класса сервера. Хотя контекст передается, любые исправления, которые вы можете предложить.
Ошибка:
FATAL EXCEPTION: main
Process: jss.smartapp, PID: 22915 android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
разместим вашей ошибки logcat – rafsanahmad007
в методе setActivityContext (MainActivity.this) передать это как контекст – rafsanahmad007
Server.setActivityContext (MainActivity.this); // передать контекст вашей деятельности вам нужно передать контекст активности вместо контекста приложения. –