Должен ли findviewbyid вызываться в потоке пользовательского интерфейса?

Возникает вопрос: следует ли мнезывать Activity.findViewById в потоке пользовательского интерфейса?

Причина, по которой я спрашиваю, заключается в том, что я называю это произвольной нитью, и она работает безупречно. Но потом я получил исключение от одного из пользователей: findViewById не работает с NPE где-то в findViewTraversal .

Так может ли это быть причиной?

Набор инструментов Android UI не является потокобезопасным и всегда должен управляться потоком пользовательского интерфейса.

Взято из нержавеющей стали .

Поскольку он не является потокобезопасным, вы не знаете, что произойдет, если вы используете API в другом потоке. Он может работать, он может не работать, он может работать большую часть времени, может никогда не работать, иначе он может работать и ломает другие вещи. Вы не можете сказать.

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

Intereting Posts