Иногда, когда мое приложение работает медленнее, пользователь может нажать кнопку, с которой запускается намерение, несколько раз. Я слышал, что это может быть ошибка, исправленная в ICS - это правда? Или мне нужно управлять режимом запуска для каждого намерения, которое я запускаю. Спасибо за вашу помощь.
Несколько экземпляров из-за многократного нажатия одной и той же кнопки до ее запуска
comment
Спасибо за ответы. Установка правильного режима запуска кажется не такой сложной задачей, как возня с кнопками. Если нет другого варианта, я думаю, что singleTop в режиме запуска активности android-manifest подойдет.
- person SIr Codealot   schedule 03.01.2013
Ответы (2)
Добавьте немного простого устранения дребезга:
class MyActivity extends Activity {
private boolean wasButtonPressed = false;
void onResume() {
super onResume();
wasButtonPressed = false;
}
void onClick( View view ) {
if( !wasButtonPressed ) {
wasButtonPressed = true;
startActivity( ....
}
}
person
323go
schedule
03.01.2013
Вы должны отключить кнопку, когда выполняете длительную операцию, и она включается после выполнения операции в ответ на щелчок пользователя. Вы выполняете длинную операцию над методом onClick, ОС будет складывать все ваши пользовательские клики, ведьма будет перенаправлена асинхронно, это не ошибка. Вы можете отобразить диалоговое окно «Ход выполнения», чтобы уведомить пользователя о длительной операции. Быстрое исправление будет заключаться в том, чтобы отключить кнопку до тех пор, пока предыдущий щелчок не будет полностью использован.
@Override
public void onClick(View aView) {
int id = aView.getId();
switch (id) {
case R.id.yourButton:
aView.setEnabled(false);
// add your own implementation
aView.setEnabled(true);
break;
default:
break;
}
}
person
Anis BEN NSIR
schedule
03.01.2013