Как я могу преднамеренно завершить работу моего приложения Xamarin для Android за то, что оно не использует RunOnUiThread? - PullRequest
0 голосов
/ 29 сентября 2018

Я знаю, это звучит как странный вопрос.

У меня есть приложение Xamarin.Android.Я просматриваю свой код и убираю вещи, которые были слишком агрессивно обернуты вызовами на RunOnUiThread.Насколько я понимаю, код, который запускается, например, в ответ на события пользовательского интерфейса, уже находится в потоке пользовательского интерфейса и поэтому не нуждается в переносе.Мне не нравится идея о RunOnUiThread вызовах, просто разбросанных повсюду, как волшебная пиковая пыль.

Я удалил кучу этих вызовов и сохранил те, которые, на мой взгляд, необходимы.Когда я запускаю приложение, все отлично работает.Но даже ни одного сбоя с первой попытки не показалось слишком хорошим, чтобы быть правдой, поэтому в качестве проверки работоспособности я попытался преднамеренно завершить работу приложения, добавив код обновления пользовательского интерфейса в местах, где я ожидалтребуется завернуть в RunOnUiThread.Однако ничто из того, что я делаю, не вызывает такого эффекта!

Меня это беспокоит, что где-то происходит какое-то волшебство, которое мешает мне увидеть проблему.

Последнее, что я попробовал, о чем я думалбезусловно, вылетало бы приложение, было бы использовать Java.Util.Timer для выполнения Java.Util.TimerTask, который устанавливает Alpha на ImageView равным 0,5.Но, тем не менее, приложение весело гудит вместе!

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

Итак, что я могу сделать, чтобы преднамеренно получить ошибку Only the original thread that created a view hierarchy can touch its views?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...