No, it is not safe. Don't do this. The documentation is very clear about this: http://developer.android.com/reference/android/view/View.html
"Note: The entire view tree is single threaded. You must always be on the UI thread when calling any method on any view." This wasn't written to mislead people into thinking that it works a different way than it does: it is because it is true, the view hierarchy is single-threaded, and it is explicitly not designed to be used from multiple threads. If you think that not seeing checks about which thread calls are being made on indicates that something is safe to use from multiple threads, you should probably stop whatever multi-threaded programming you are doing and rethink it. :} Even instantiating a view from one thread and attaching it to a view hierarchy in another is not safe, because many views will internally create Handler objects that are bound to whatever thread they were created on, causing you to have parts of your view hierarchy running on the wrong thread with bad results. On Tue, Jun 26, 2012 at 2:00 PM, Tamás Kovács <falcon.firebre...@gmail.com>wrote: > It works seamlessly like a charm. It would be nice to know if this is > supported/acceptable generally. > > I hope we'll get an answer from the Android guys/ladies. > > > On Jun 26, 10:53 pm, Justin Anderson <magouyaw...@gmail.com> wrote: > > I'm not sure, but I doubt it... Have you tried it? Did it work? > > > > Thanks, > > Justin Anderson > > MagouyaWare Developerhttp://sites.google.com/site/magouyaware > > > > On Tue, Jun 26, 2012 at 2:27 PM, Tamás Kovács > > <falcon.firebre...@gmail.com>wrote: > > > > > > > > > > > > > > > > > I know that the UI elements (View hierarchy) may only be manipulated > > > from the UI thread. For a background operation, the AsyncTask can be > > > used, which offers event handers to reach the UI thread. > > > > > To be brief, is it allowed to instantiate a View (tied to > > > getApplicationContext()) in a non-UI thread? This custom View > > > descendant -- once instantiated -- is added to the view hierarchy from > > > the UI thread. So only the constructor call is done inside an > > > Asynctask.doInBackground; its attaching (addView(...))to the > > > Activity's root layout hierarchy is still done in the UI thread. > > > > > (I pre-instantiate the View in an asynctask because when it's needed > > > in an Activity, it must be instantly displayed.) > > > > > -- > > > You received this message because you are subscribed to the Google > > > Groups "Android Developers" group. > > > To post to this group, send email to > android-developers@googlegroups.com > > > To unsubscribe from this group, send email to > > > android-developers+unsubscr...@googlegroups.com > > > For more options, visit this group at > > >http://groups.google.com/group/android-developers?hl=en > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en