Как я могу заставить блокировку перерисованного элемента пользовательского интерфейса?Android

Форум для тех, кто программирует под Android
Anonymous
Как я могу заставить блокировку перерисованного элемента пользовательского интерфейса?

Сообщение Anonymous »

У меня есть простая страница входа, где пользователь вводит пароль, и этот пароль используется для расшифровки некоторых данных и создания основной деятельности. Процесс генерации ключа, вызов базы данных и создания основной деятельности занимает около 5 секунд, поэтому я хочу показать колесо прогресса на экране входа в систему сразу после того, как пользователь нажимает кнопку входа в систему. Кажется, я не могу найти способ заставить блокирующее пользовательское обновление для вида в Android. Invalidate () < /code> и postinvalidate () < /code> оба не будут работать, поскольку они просто уведомит Android о том, что в какой-то момент в будущем должен произойти перераспределение.

Код: Выделить всё

        try {
progressBar.setVisibility(View.VISIBLE);
passwordEditText.setEnabled(false);

Key key = doLogin(passwordEditText.getText()); // Long operation

Intent intent = new Intent(getActivity(), MainActivity.class);
intent.putExtra("Key", key);
startActivity(intent);

getActivity().finish();

} catch (Exception e) {
passwordEditText.setError(getString(R.string.login_error));
Log.e("Login", e.getMessage());
} finally {
progressBar.setVisibility(View.INVISIBLE);
passwordEditText.setEnabled(true);
}
Если невозможно переопределить поведение по умолчанию и привести к немедленной блокировке перерыво>

Подробнее здесь: https://stackoverflow.com/questions/567 ... ui-element

Вернуться в «Android»