Моя MainActivity начинается с загрузки адреса электронной почты из SharedPreferences. Если его нет, появится всплывающее окно с запросом вашего электронного адреса. Это только при первом запуске.
Но onCreate не ждет, пока это всплывающее окно закроется, и продолжает работать в фоновом режиме. Электронная почта нужна сразу после этого на нескольких позициях. Мое текущее решение - перезапуск приложения вручную.
Как можно приостановить onCreate и дождаться, пока адрес электронной почты не будет введен и не будет нажата кнопка отправки. Можете ли вы проверить, отклонено ли оно или что-то в этом роде?
Многие элементы вырезаны в этих сегментах кода
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
loadEmailAddress();
if (email.equals("")) {
setEmailAddress();
}
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
View hView = navigationView.getHeaderView(0);
private void setEmailAddress() {
final AlertDialog dialogBuilder = new AlertDialog.Builder(this).create();
LayoutInflater inflater = this.getLayoutInflater();
final View dialogView = inflater.inflate(R.layout.popup, null);
Button submit = dialogView.findViewById(R.id.submit);
submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final TextInputLayout layoutEditEmail = dialogView.findViewById(R.id.layout_edit_email);
String editEmail = Objects.requireNonNull(layoutEditEmail.getEditText()).getText().toString();
saveEmailAddress(editEmail);
dialogBuilder.dismiss();
}
});
}