Параллельные вызовы onCheckedChanged - PullRequest
0 голосов
/ 05 мая 2019

У меня есть несколько флажков, которые используют один и тот же CompoundButton.OnCheckedChangeListener.

Если метод onCheckedChanged занимает много времени для завершения, возможно ли, что два флажка, установленные по щелчку в быстрой последовательности, вызовут чередование двух методов обратного вызова onCheckedChanged?

По сути, я хочу убедиться, что если флажки A, B и C будут щелкаться в этом порядке, то методы обратного вызова для A, B и C будут выполняться в этом порядке без чередования.

Заранее спасибо!

1 Ответ

0 голосов
/ 05 мая 2019

Если метод onCheckedChanged занимает много времени для завершения

Вы должны выполнять операции, которые могут занять немного больше времени в другом потоке или асинхронной задаче, в противном случае вы заблокируете основной поток, и пользовательский интерфейс может работать некорректно.

возможно ли, что два флажка, нажатые в быстрой последовательности, будут вызвать чередование двух методов обратного вызова onCheckedChanged

Вы сможете быстро установить флажки только в том случае, если основной поток не заблокирован первым обратным вызовом (см. Выше).

По сути, я хочу убедиться, что если флажки A, B и C щелкнув в этом порядке, методы обратного вызова для A, B и C выполняется в таком порядке без чередования.

Если вы последуете моему предложению и дольше будете работать в фоновом потоке / асинхронной задаче, порядок обратных вызовов будет правильным.

...