That suppresses the runnable, you’re right. On the other hand you don’t solve the problem of not being able to use a non-resource image, and having to stash the error drawable resource ID somewhere for as long as the view lives. Given you would still have to manually rebind things when the restore is upon you (again, using a runnable or a view tree observer, because timings issues are the same the original had), you might make the workaround slightly less hacky. Still, no clean way of doing it…
Given setError() is a de facto deprecated way of showing errors, it’s way better to use other newer, safer ways of doing it, as suggested in the article. No reason to do hacks and being subjected to the various OEMs’ internal implementations, when there’s a better, cleaner way (that also looks better).