У меня возникает проблема, когда я пытаюсь показать ProgressWheel (отсюда https://github.com/pnikosis/materialish-progress) в моем приложении.
В методе Confirm (), вызываемом сверху В меню я показываю макет, содержащий ProgressWheel, затем вызываю WS с помощью модификации с execute (должен быть синхронным) и fini sh, скрывая макет, когда я получил ответ (плюс другие вещи, такие как показ DialogFragment и т. д. * 1034). * ...).
Проблема в том, что все идет хорошо, когда я комментирую вызов WS. Если я вызываю его, то «зависает» до завершения вызова, а затем обновляет макет на короткое (очень короткое) время.
Вот код:
// onOptionsItemSelected
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
case R.id.confirmar:
Confirm();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
// Подтверждение
private void Confirm() {
// Show the FrameLayout with the ProgressWheel
progress_overlay.setVisibility(View.VISIBLE);
...
// Prepare call and execute
resGrabacion = produccionRepository.grabarCuponEAN(tJsonCfg.toString(), tJsonParam.toString());
mensaje = resGrabacion.substring(3);
// Hide the FrameLayout
progress_overlay.setVisibility(View.GONE);
// Other stuff (show DialogFragment with the response.body(), take actions on the Activity, etc..)
}
// ProduccionRepository (метод grabarCuponEAN)
Call<String> call = gestinAlmacenService.grabarCuponEAN(gestinAlmacenRequest);
try{
Response<String> response = call.execute();
if(response.isSuccessful()) {
return response.body();
}
else{
Toast.makeText(MyApp.getContext(), MyApp.getContext().getResources().getString(R.string.titErrorEnviarDatos), Toast.LENGTH_SHORT).show();
}
} catch(IOException e) {
Toast.makeText(MyApp.getContext(), MyApp.getContext().getResources().getString(R.string.titErrorConexion), Toast.LENGTH_SHORT).show();
}
return null;
Аннотации:
- Я могу ' сделать вызов асинхронным, потому что я должен открыть DialogFragment с результатом, поэтому я не могу получить SupportFragmentManager в классе репозитория.
- Я попытался открыть сообщение с новым Runnable в шоу FrameLayout и скрыть, но тоже не сработало.
- Почему репозиторий? Я следую рекомендациям Google (https://developer.android.com/jetpack/docs/guide)