Я занимаюсь разработкой приложения для Android.Я должен вызвать API и получить результат. Так что я использую библиотеку модернизации и вызываю API.Весь код и работает и получить результат в порядке.
Я хочу получить данные при отображении и обновлении диалогового окна прогресса и после завершения диалогового окна прогресса.
Я пытаюсь. Но я могу только показать изакрыть диалог прогресса в классе onResponse.
не может вызвать класс AsyncTask для методов onPostExecute и onProgressUpdate.
private ProgressDialog progressDialog;
public ClientInfo(Context ct){
WeakReference<Context> contextRef = new WeakReference<>(ct);
progressDialog = new ProgressDialog(contextRef.get());
}
@Override
protected String doInBackground(String... strings) {
String token = strings[0];
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Config.Api)
.addConverterFactory(GsonConverterFactory.create())
.build();
GetClientApi getClientApi = retrofit.create(GetClientApi.class);
Call<ClientApiInfo> clientApiInfoCall = getClientApi.getClientApiInfo(token);
clientApiInfoCall.enqueue(new Callback<ClientApiInfo>() {
@Override
public void onResponse(@NonNull Call<ClientApiInfo> call, @NonNull Response<ClientApiInfo> response) {
if(response.code() == 200){
progressDialog.dismiss();
}
else if (response.code() == 404) {
progressDialog.dismiss();
}
}
@Override
public void onFailure(@NonNull Call<ClientApiInfo> call, @NonNull Throwable t) {
}
});
return null;
}
@Override
protected void onPreExecute() {
progressDialog.setMessage("Start");
progressDialog.show();
super.onPreExecute();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
}
@Override
protected void onProgressUpdate(String... values) {
progressDialog.setMessage(values[0]);
super.onProgressUpdate(values);
}
мне нужно разрушить метод doInbackground во время обновления диалога прогресса и после того, как он закончится, отобразить данныемассаж и уволить.
Спасибо.