Android EditText Рассчитать паузу - PullRequest
0 голосов
/ 16 сентября 2011

У меня есть активность андроида, где есть EditText и, когда пользователь вводит, он вызывает сервис для каждого набранного ключа. Я считаю, что это неэффективно, потому что делается больше, чем требуется, звонков. Таким образом, решение состоит в том, чтобы сделать там какую-то паузу, проверяющую там.

if (PauseOfThreeSeconds) {
   // call the service here
}

Как я могу почувствовать паузу, а затем только позвонить в службу?

Ответы [ 2 ]

1 голос
/ 16 сентября 2011

Запуск обработчика с задержкой поста на 3 секунды при каждом нажатии клавиши. Когда вы получите хранилище ключей, отмените исполняемый файл, который уже находится в очереди, и запустите новый исполняемый файл, как я упоминал выше.

0 голосов
/ 16 сентября 2011

Вы должны запланировать тревогу для запуска обслуживания при каждом нажатии кнопки, а также для отмены любых ранее запланированных тревог, чтобы они также не сработали:

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

long alarmWaitTime = 3000;

onButtonClicked(View v){

    Intent i = new Intent(AndroidAlarmService.this, MyAlarmService.class);
    PendingIntent pi = PendingIntent.getService(AndroidAlarmService.this, 0, i, 0);

    // Cancel any previously set alarms
    alarmManager.cancel(pi);

    // set a new alarm
    alarmManager.set(AlarmManager.RTC, System.getTimeInMillis() + alarmWaitTime , pi);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...