Проблема, с которой вы столкнулись, может быть связана с особенностями работы вашего AccessibilityService и взаимодействием с интерфейсом TikTok. Вот несколько возможных причин и решений:
### Причины:
1. **Слишком частое срабатывание события**:
- Метод `onAccessibilityEvent` может вызываться слишком часто. Если `TYPE_WINDOW_CONTENT_CHANGED` срабатывает слишком быстро, это может привести к тому, что ваш `startSwiping()` будет вызываться снова и снова слишком быстро, вызывая слишком быстрое перелистывание.
2. **Состояние/UI потока**:
- Когда вы запускаете свайп в `onAccessibilityEvent`, это может произойти до полной отрисовки или стабилизации UI, что приводит к непредсказуемому поведению.
3. **Асимметричное поведение интерфейса**:
- TikTok может иметь свой собственный механизм скроллинга и управления событиями, что может конфликтовать с вашим кодом, если вы вызовете свой метод свайпа в момент, когда TikTok сам пытается выполнять какие-либо действия.
4. **Неправильное управление состоянием**:
- Убедитесь, что вы корректно отслеживаете состояние текущего поиска и завершаете свайп, когда нужный элемент найден.
### Возможные решения:
1. **Использовать задержку**:
- Введите временную задержку перед запуском свайпа, чтобы дать приложению время отрисовать новое содержимое:
```java
new Handler().postDelayed(this::startSwiping, 1000); // Задержка на 1 секунду
```
2. **Фильтрация срабатываний**:
- Добавьте логику для фильтрации обращений к `startSwiping()` так, чтобы оно вызывалось только в том случае, если фактически произошло изменение в контенте, а не на каждое изменение UI.
3. **Отложенный запуск свайпа**:
- Вместо немедленного вызова `startSwiping()`, добавьте флаг, который определяет, готовы ли вы сейчас запускать свайп. Запустите свайп только после проверки, что нужные данные загружены и готовы к взаимодействию.
4. **Логирование для отладки**:
- Добавьте дополнительные логи, чтобы отследить, когда именно и почему ваш метод свайпа запускается. Это может помочь определить, нужно ли ему запускаться в том или другом месте.
5. **Использование нескольких триггеров**:
- Вместо того чтобы полагаться только на `TYPE_WINDOW_CONTENT_CHANGED`, вы можете использовать и другие типы событий (например, `TYPE_VIEW_SCROLLED` или `TYPE_VIEW_CLICKED`), чтобы активировать свайпы, когда сработают определённые условия.
6. **Редактирование логики поиска**:
- Убедитесь, что `scanForTargetName()` не запускает `startSwiping()` каждый раз, когда оно находит имя. Это может вызвать ненужные скроллы.
Пробуйте адаптировать описанные выше решения к вашему проекту, и, возможно, это поможет избежать проблем с слишком быстрым перелистыванием видео в TikTok.