Когда я пишу коды на платформе Android, я часто должен быть осторожен в работе пользовательского интерфейса, что может быть сделано только в потоке пользовательского интерфейса, я это четко знаю, и я знаю, почему GUI использует один поток для работать с виджетами UI, в случае многопоточной одновременной работы. Но я хочу знать, как система Android может различать поток пользовательского интерфейса и наш собственный поток, отличный от UI. В UI-потоке есть идентификатор?Идентификатор темы пользовательского интерфейса Android
ответ
Любой процесс, который вы вызываете из своего MainActivity, запускается в потоке пользовательского интерфейса. Если вы не хотите что-то запускать в потоке пользовательского интерфейса, запустите его в AsyncTask или фоновом потоке. Это предотвратит блокировку пользовательского интерфейса, чтобы пользователь мог взаимодействовать с вашим приложением.
Если вы хотите знать, если вы находитесь в потоке пользовательского интерфейса вы можете сделать что-то вроде:
if("main".equals(Thread.currentThread().getName())) {}
Итак, чтобы ответить на ваш вопрос, да, поток пользовательского интерфейса имеет идентификатор: «главный».
Информация предоставлена системой Android, поэтому ее можно исследовать отдельно.
Однако, когда вы разрабатываете приложение, наилучшей практикой является то, что вам следует избегать суждения или реверсирования внутренней работы каркасов и адаптации вашего приложения. Скорее, вы должны посмотреть на свое требование и найти способ его достичь.
В вашем случае очевидно, что вам нужно выполнить кусок кода в потоке графического интерфейса пользователя. Для этого вам не нужно создавать поток в виде потока GUI. Вы можете сделать это одним из следующих способов:
Используйте Runnables и отправьте свой код в основное действие, что-то типа;
myActivity.post (новый Runnable() {
@override public void run(){ // your code to be run on GUI thread }
)};
Если активность недоступна, вы можете найти главного обработчика приложения и сообщения для него. Что-то вроде;
Обработчик appHandler = новый обработчик (context.getMainLooper()); appHandler.post (новый Runnable (....
Вы можете использовать runOnUIThread()
- 1. WPF - Приостановка темы пользовательского интерфейса?
- 2. Обновление пользовательского интерфейса за пределами основной темы
- 3. Отдельные темы для пользовательского интерфейса и логики - Android
- 4. Что вызывает блокировку моей темы пользовательского интерфейса?
- 5. Изменение пользовательского интерфейса из фоновой темы
- 6. Обновление пользовательского интерфейса из другой темы
- 7. Изменение пользовательского интерфейса из другой темы
- 8. Обновление пользовательского интерфейса с сообщениями из темы
- 9. Обновление пользовательского интерфейса из другой темы
- 10. Ошибка пользовательского интерфейса android
- 11. Дизайн пользовательского интерфейса Android?
- 12. Как найти идентификатор динамического элемента пользовательского интерфейса в android
- 13. xcode 4 идентификатор элемента пользовательского интерфейса
- 14. Дизайн шаблона пользовательского интерфейса Android для использования существующего пользовательского интерфейса
- 15. Обновление пользовательского интерфейса Android от пользовательского вида
- 16. - андроидная анимация всегда в пределах темы пользовательского интерфейса?
- 17. Создание такого пользовательского интерфейса Android
- 18. Обзор макета пользовательского интерфейса Android
- 19. Ресурсы пользовательского интерфейса для android
- 20. Android, касающийся дизайна пользовательского интерфейса
- 21. Дизайн пользовательского интерфейса Android - Hangman
- 22. Обновление пользовательского интерфейса в Android
- 23. Компоненты пользовательского интерфейса Android MvvmCross
- 24. обучение созданию пользовательского интерфейса Android
- 25. Android - переключение из пользовательского интерфейса?
- 26. Android - исправление многопоточности/пользовательского интерфейса
- 27. Время ожидания пользовательского интерфейса Android
- 28. Использование элементов пользовательского интерфейса Android
- 29. Android - проблема создания пользовательского интерфейса
- 30. Ошибка кодирования пользовательского интерфейса Android
Я хочу знать, что, как андроида система идентичности каждого приложения поток пользовательского интерфейса, как заставить их стать потоком пользовательского интерфейса. –
Как система Android добавляет идентификатор: «main» в Thread UI? И будет ли он каждый раз судить о контексте потока пользовательского интерфейса? Как и в случае с суждением, как вы упомянули, тогда он будет запускать связанные ui в рамках. –
Не задавайте свой вопрос. Объясните, что вы пытаются достичь? – Cristian