I have written application that combines widget, service syncronizing widget and activity for configuring widget.
I've started network transfer to server to fetch weather data and app crashed. After stack debugging I've got network in main thread exception.
After googlin some time, I've rewritten all network communication to AsyncTask but... running application gives me error
Only the original thread that created a view hierarchy can touch its views.
Now im stuck - data fetched by http client must be pushed into set of LinearLayouts and TextViews/ImageViews. 7 day weather gives me pretty big bunch of them - bigger than layout.xml can handle.
I'm asking - how to run HTTP sync in thread (as main thread network access gives me Exception) and sync views by View.add(object) in thread gives me:
> E/AndroidRuntime(965): FATAL EXCEPTION: AsyncTask #1
> E/AndroidRuntime(965): java.lang.RuntimeException: An error occured while executing doInBackground()
> E/AndroidRuntime(965): at android.os.AsyncTask$3.done(AsyncTask.java:278)
> E/AndroidRuntime(965): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
> E/AndroidRuntime(965): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
> E/AndroidRuntime(965): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
> E/AndroidRuntime(965): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
> E/AndroidRuntime(965): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
> E/AndroidRuntime(965): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
> E/AndroidRuntime(965): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
> E/AndroidRuntime(965): at java.lang.Thread.run(Thread.java:856)
> E/AndroidRuntime(965): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
Any ideas?